标题: [系统相关] 代码中的if命令为何出错 [打印本页]
作者: zhzhbzhzhbzhzhb 时间: 2011-11-25 11:41 标题: 代码中的if命令为何出错
本帖最后由 CrLf 于 2011-11-25 13:05 编辑
- @echo off
-
- for /f "skip=1 delims=" %%i in ('wmic DISKDRIVE get Model') do call set B=%%B%% %%i
-
- echo%B%
-
-
- if %%B%% == Hitachi HDS721050CLA362 goto A
- echo hello
-
- pause
- :A
- echo 谢谢
- pause
复制代码
Hitachi HDS721050CLA362硬盘型号改为你的硬盘型号,
if的等同命令表示有错误,望高手赐教。。。。
作者: jellyhk 时间: 2011-11-25 12:04
set B=%%B%% %%i
是什么意思,给讲下行不?学学习!
另外if 中字符有空格是不是要把""加起吧!你加""试
作者: zhzhbzhzhbzhzhb 时间: 2011-11-25 12:20
回复 2# jellyhk
set B=%%B%% 是通过wmic 获得的变量,就是硬盘的型号
if中有空,双引号我加过,还是不行,帮忙调试一下,谢谢!
作者: jellyhk 时间: 2011-11-25 12:34
呵呵!我还不明白%%B%% 是什么!为什么要4个%,你是不是想把%b%当一个变量?
另外我运行的命令wmic DISKDRIVE get Model的结果是!你想要干什么?就那我这图说!
作者: zhzhbzhzhbzhzhb 时间: 2011-11-25 12:52
回复 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我不是很熟悉,所以向你们赐教,谢谢!
作者: jellyhk 时间: 2011-11-25 12:54
这样写啊
for /f "skip=1 delims=" %%i in ('wmic DISKDRIVE get Model') do echo %%i
作者: zhzhbzhzhbzhzhb 时间: 2011-11-25 12:58
回复 6# jellyhk
不错,更简洁,但是我要处理下一步if命令,必须要一个参数来表示变量Model啊,有什么好建议啊???
作者: jellyhk 时间: 2011-11-25 13:02
这样你把你的运行结果搞个图上来更直接明了!你在说你要干什么!
行不!
作者: zhzhbzhzhbzhzhb 时间: 2011-11-25 13:10
回复 8# jellyhk - @echo off
- for /f "skip=1 delims=" %%i in ('wmic DISKDRIVE get Model') do call set B=%%B%% %%i
- echo %B%
- pause
- if /i "%B%"=="自己硬盘的型号" goto A
- echo 对不起
- pause
- :A
- ECHO 恭喜
- pause
复制代码
如果你的硬盘的型号等于"自己硬盘的型号"则出现恭喜结果
如果不对则出现对不起的结果
作者: jellyhk 时间: 2011-11-25 13:13
你出现的问题是不是2个结果都出?
作者: zhzhbzhzhbzhzhb 时间: 2011-11-25 13:14
回复 10# jellyhk
对,因为if命令出错,所以才会出现两个结果啊。。。
作者: jellyhk 时间: 2011-11-25 13:17
哈哈!搞半天是这个问题!郁闷了!
是你写的不对!
echo 对不起
pause
:A
ECHO 恭喜
pause
--------
换
---echo 对不起
pause&&exit
:A
ECHO 恭喜
pause&&exit
作者: zhzhbzhzhbzhzhb 时间: 2011-11-25 13:33
回复 12# jellyhk
还是有问题,就是我要的结果是“恭喜”
出现“对不起”是if语句还有问题
作者: jellyhk 时间: 2011-11-25 13:46
回复 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张图
作者: Hello123World 时间: 2011-11-25 14:08
if %%B%% == Hitachi HDS721050CLA362 goto A
改为
if %B% == Hitachi HDS721050CLA362 goto A
作者: zhzhbzhzhbzhzhb 时间: 2011-11-25 14:51
回复 14# jellyhk
朋友,你打开记事本把命令贴进去,另存为后缀名为*.bat的批处理就行,试试看!
作者: zhzhbzhzhbzhzhb 时间: 2011-11-25 14:52
回复 15# Hello123World
群主,不行啊,你帮忙调试一下,谢谢!
作者: powerbat 时间: 2011-11-26 00:50
标签 :A 上面加一行 exit /b 或者 goto :eof
欢迎光临 批处理之家 (http://www.bathome.net/) |
Powered by Discuz! 7.2 |