次のコードは、WinXPとWin7で異なるERRORLEVELを返します。
set "QQQ="
echo ERRORLEVEL=%ERRORLEVEL%
XP
>ERRORLEVEL=1
Windows 7
>ERRORLEVEL=0
なんで?
次のコードは、WinXPとWin7で異なるERRORLEVELを返します。
set "QQQ="
echo ERRORLEVEL=%ERRORLEVEL%
XP
>ERRORLEVEL=1
Windows 7
>ERRORLEVEL=0
なんで?
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.
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