0

以下代码在 Win XP 和 Win 7 上返回不同的 ERRORLEVEL:

set "QQQ="
echo ERRORLEVEL=%ERRORLEVEL%

经验值

>ERRORLEVEL=1

Windows 7的

>ERRORLEVEL=0

为什么?

4

2 回答 2

1

XP 在这里似乎更有意义,因为它将错误级别设置为 1,但前提是 QQQ 之前是未定义的变量。

WIN7有两种不同的方式!
set不更改错误级别,如果代码在.BAT文件内
set,则将错误级别始终设置为 0,如果代码在.CMD文件内

为什么?
没人知道。你可以问微软,但我想这只是一个意想不到的行为。

于 2012-09-17T09:12:55.133 回答
0

在 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

于 2012-09-17T08:26:37.603 回答