Board logo

标题: if求救!!!!!!!谢谢了!!!!!!!!!! [打印本页]

作者: ab200210     时间: 2007-10-14 09:33    标题: if求救!!!!!!!谢谢了!!!!!!!!!!
set /a 1+3
if errorlevel 4 goto yun
:yun
shutdown -i
pause


set /a 1+3
if errorlevel 5 goto yun
:yun
shutdown -i
pause
为什么我的上面的两个批处理的结果是一样的呢????谢谢啊!!!!!!!

作者: 不得不爱     时间: 2007-10-14 10:44
不知道你要干什么? 你的批处理会按照顺序执行
所以上面的两个批处理的结果是一样的

作者: ab200210     时间: 2007-10-14 11:08
我想让结果是4时就是正确时执行shutdown -i
错误时就什么都不执行了!!!!怎么写啊????谢谢了!!!!!!!!

作者: hxwxyz     时间: 2007-10-14 13:36
这个顺序执行的,不管正不正确都会执行下去
set /a 1+3
if errorlevel 5 goto :yun
:yun
shutdown -i
pause

if errorlevel 5 goto :yun-------if errorlevel 5 goto :eof

作者: ab200210     时间: 2007-10-14 14:49
Originally posted by hxwxyz at 2007-10-14 01:36 PM:
这个顺序执行的,不管正不正确都会执行下去
set /a 1+3
if errorlevel 5 goto :yun
:yun
shutdown -i
pause

if errorlevel 5 goto :yun-------if errorlevel 5 goto :eof


那样我应该怎么写啊??

作者: ab200210     时间: 2007-10-14 14:58
set /a 1+2
if errorlevel 4 goto yun
:yun
shutdown -i
if not errorlevel 4 goto wo
:wo
pause
怎么这样写也不行啊???谢谢啊!!!!!!

作者: lxmxn     时间: 2007-10-14 17:00
首先“set /a 1+2”的用法就错误了,这样的返回值永远是0,所以“if errorlevel ...”的语句永远为假,所以结果是一样的。

作者: ab200210     时间: 2007-10-14 17:24
那样应该怎么写啊??谢谢了!!!!!!!

作者: lxmxn     时间: 2007-10-14 17:28
根据你的意思:

@echo off
set /a first=1+3
if %first% gtr 4 goto :yun
goto :out
:out
pause&exit/b

:yun
shundown -i

作者: ab200210     时间: 2007-10-14 18:26
怎么还不行啊??
gtr不是大于的意思么??我又试了很多次不行啊!!!!而且换了数字结果都一样啊!!!怎么回事啊???????谢谢了!!!

作者: 不得不爱     时间: 2007-10-14 19:04
下面是结果等于4时执行shundown -i
@echo off
set /a jg=1+3
if %jg% equ 4 goto yun
pause
exit/b

:yun
shundown -i


随便请修改下标题,以便于管理!

作者: ab200210     时间: 2007-10-15 17:46
谢谢啊!!!!我知道了!!!!!!
不好意思 啊!!!!!!我又有问题了!!!打破沙锅问到底!!!!!!!
exit与exit/b有区别么??????我怎么觉得两个结果一样!!!谢谢啊!!!!!

作者: hxwxyz     时间: 2007-10-16 18:51
/B
指定要退出当前批处理脚本而不是 CMD.EXE。如果在批处理脚本之外使用 /b,就会退出 Cmd.exe

作者: gugewang     时间: 2008-1-11 21:43
懵懵懂懂,学习了

作者: moniuming     时间: 2008-2-3 01:16
之前从来没想过exit还有参数,唉,浅啊