我有一个Windows 7 x64系统,我希望有一个批处理文件执行程序,然后测试进程的退出代码并根据退出代码执行一些操作。例如:
@rem sets the process exit code to 1. should print "success!" actually prints nothing
cmd /c exit 1
if NOT ERRORLEVEL 0 echo success!
@rem prints "success!" as expected
cmd /c exit 1
if errorlevel 1 echo success!
@rem prints "failure!" even though the exit code is 0
cmd /c exit 0
if errorlevel 1 echo failure!
@rem prints "ERRORLEVEL=1" as expected
cmd /c exit 1
echo ERRORLEVEL=%ERRORLEVEL%
我需要做些什么才能从批处理文件中获得预期的行为?
答案 0 :(得分:3)
NOT ERRORLEVEL 0
无法正常工作
首先,它评估ERRORLEVEL 0
由于错误级别为 0或更高,因此评估为TRUE
然后评估NOT
NOT TRUE
为FALSE
,表示您的第一封邮件无法打印。
第3个结果没有回应失败,所以我不知道你的系统出了什么问题。要检查错误级别,我在每个退出语句
之后放置echo ERRORLEVEL=%ERRORLEVEL%