0

次のコードは、WinXPとWin7で異なるERRORLEVELを返します。

set "QQQ="
echo ERRORLEVEL=%ERRORLEVEL%

XP

>ERRORLEVEL=1

Windows 7

>ERRORLEVEL=0

なんで?

4

2 に答える 2

1

XP seems to make more sense here, as it sets the errorlevel to 1, but only if QQQ is an undefined variable before.

WIN7 have two different ways!
set does not change the errorlevel, if the code is inside a .BAT file
set set the errorlevel always to 0, if the code is inside a .CMD file

Why?
Nobody knows. You can ask Microsoft, but I suppose it's simply an unexpected behaviour.

于 2012-09-17T09:12:55.133 に答える
0

Windows XPでは、SETコマンド自体がエラーレベル(通常は1)を設定するため、これは機能しません。QQQの値は定義されていませんが、Windows 7では、SET値がQQQをnullに設定するため、たとえばWINDOWS7ではERRORLEVEL=0になります。

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 に答える