[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

[系统相关] 代码中的if命令为何出错

本帖最后由 CrLf 于 2011-11-25 13:05 编辑
  1. @echo off
  2. for /f "skip=1 delims=" %%i in ('wmic DISKDRIVE get Model') do call set B=%%B%% %%i
  3. echo%B%
  4. if  %%B%% == Hitachi HDS721050CLA362 goto A
  5. echo hello
  6. pause
  7. :A
  8. echo 谢谢
  9. pause
复制代码
Hitachi HDS721050CLA362硬盘型号改为你的硬盘型号,
if的等同命令表示有错误,望高手赐教。。。。

set B=%%B%% %%i
是什么意思,给讲下行不?学学习!
另外if 中字符有空格是不是要把""加起吧!你加""试
本人已死!不用联系!~
要联系下来联系!~~

TOP

回复 2# jellyhk
set B=%%B%% 是通过wmic 获得的变量,就是硬盘的型号
if中有空,双引号我加过,还是不行,帮忙调试一下,谢谢!

TOP

呵呵!我还不明白%%B%% 是什么!为什么要4个%,你是不是想把%b%当一个变量?

另外我运行的命令wmic DISKDRIVE get Model的结果是!你想要干什么?就那我这图说!
本人已死!不用联系!~
要联系下来联系!~~

TOP

回复 4# jellyhk

呵呵,你可以把%B%看作变量,wmic DISKDRIVE get Model直接在dos里是不完整的语句,
你试试
@echo off

for /f "skip=1 delims=" %%i in ('wmic DISKDRIVE get Model') do call set B=%%B%% %%i

echo%B%
pause


代码生成批处理.bat
我那个if命令的等同表示方法有错误,if我不是很熟悉,所以向你们赐教,谢谢!
1

评分人数

    • CrLf: 请把超过一行的代码用 code 括起来PB -2

TOP

这样写啊
for /f "skip=1 delims=" %%i in ('wmic DISKDRIVE get Model') do echo %%i
本人已死!不用联系!~
要联系下来联系!~~

TOP

回复 6# jellyhk
不错,更简洁,但是我要处理下一步if命令,必须要一个参数来表示变量Model啊,有什么好建议啊???

TOP

这样你把你的运行结果搞个图上来更直接明了!你在说你要干什么!
行不!
本人已死!不用联系!~
要联系下来联系!~~

TOP

回复 8# jellyhk
  1. @echo off
  2. for /f "skip=1 delims=" %%i in ('wmic DISKDRIVE get Model') do call set B=%%B%% %%i
  3. echo %B%
  4. pause
  5. if /i "%B%"=="自己硬盘的型号" goto A
  6. echo 对不起
  7. pause
  8. :A
  9. ECHO 恭喜
  10. pause
复制代码
如果你的硬盘的型号等于"自己硬盘的型号"则出现恭喜结果
如果不对则出现对不起的结果

TOP

你出现的问题是不是2个结果都出?
本人已死!不用联系!~
要联系下来联系!~~

TOP

回复 10# jellyhk

对,因为if命令出错,所以才会出现两个结果啊。。。

TOP

哈哈!搞半天是这个问题!郁闷了!
是你写的不对!
echo 对不起               
pause
:A
ECHO 恭喜
pause
--------

---echo 对不起               
pause&&exit
:A
ECHO 恭喜
pause&&exit
本人已死!不用联系!~
要联系下来联系!~~

TOP

回复 12# jellyhk


    还是有问题,就是我要的结果是“恭喜”
出现“对不起”是if语句还有问题

TOP

回复  jellyhk
不错,更简洁,但是我要处理下一步if命令,必须要一个参数来表示变量Model啊,有什么好建议 ...
zhzhbzhzhbzhzhb 发表于 2011-11-25 12:58

你就写在for语句里!
---
我还是没搞懂啊!
这样你把for /f "skip=1 delims=" %%i in ('wmic DISKDRIVE get Model') do echo %%i
运行结果发上来!
在cmd 里运行wmic DISKDRIVE get Model
发上来!
2张图
本人已死!不用联系!~
要联系下来联系!~~

TOP

if  %%B%% == Hitachi HDS721050CLA362 goto A

改为

if  %B% == Hitachi HDS721050CLA362 goto A

TOP

返回列表