以下代码在Win XP和Win 7上返回不同的ERRORLEVEL:
set "QQQ="
echo ERRORLEVEL=%ERRORLEVEL%
XP
>ERRORLEVEL=1
Windows 7
>ERRORLEVEL=0
为什么?
答案 0 :(得分:1)
XP似乎在这里更有意义,因为它将errorlevel设置为1,但前提是QQQ是未定义的变量。
WIN7有两种不同的方式!set
文件中,则.BAT
不会更改错误级别
如果代码在set
文件中,则.CMD
将errorlevel设置为0
为什么?
没人知道。你可以问微软,但我认为这只是一种意想不到的行为。
答案 1 :(得分:0)
在Windows XP中,这不起作用, 因为SET命令本身会设置一个错误级别(通常为1)! 因为QQQ的价值没有定义 但是在Windows 7中会发生什么,SET值设置QQQ为null,因此 ERRORLEVEL = 0 例如IN WINDOWS 7
set "QQQ"
echo %ERRORLEVEL%
pause
未定义环境变量QQQ // ERRORLEVEL = 1 和 例如IN WINDOWS 7
set "QQQ=" :: sets QQQ as null
echo %ERRORLEVEL%
pause
环境变量QQQ未定义// ERRORLEVEL = 0