以下代码在 Win XP 和 Win 7 上返回不同的 ERRORLEVEL:
set "QQQ="
echo ERRORLEVEL=%ERRORLEVEL%
经验值
>ERRORLEVEL=1
Windows 7的
>ERRORLEVEL=0
为什么?
以下代码在 Win XP 和 Win 7 上返回不同的 ERRORLEVEL:
set "QQQ="
echo ERRORLEVEL=%ERRORLEVEL%
经验值
>ERRORLEVEL=1
Windows 7的
>ERRORLEVEL=0
为什么?
XP 在这里似乎更有意义,因为它将错误级别设置为 1,但前提是 QQQ 之前是未定义的变量。
WIN7有两种不同的方式!
set
不更改错误级别,如果代码在.BAT
文件内
set
,则将错误级别始终设置为 0,如果代码在.CMD
文件内
为什么?
没人知道。你可以问微软,但我想这只是一个意想不到的行为。
在 Windows XP 中这不起作用,因为 SET 命令本身会设置错误级别(通常为 1)!因为未定义 QQQ 的值,但在 Windows 7 中发生的情况是 SET 值将 QQQ 设置为 null,因此 ERRORLEVEL=0 例如在 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