回答:
1以上の戻りコードをテストします。
if ERRORLEVEL 1 echo Error
または
if %ERRORLEVEL% GEQ 1 echo Error
または、0に等しいリターンコードをテストします。
if %ERRORLEVEL% EQU 0 echo OK
GOTO
ここに示すような他のコマンドを使用できますecho
。
0 was unexpected this time.
%ERRORLEVEL%
エラーが発生しても0であるケースが見つかりました。%ERRORLEVEL%
cmdファイルをチェックインするときに発生しました。試してstart /wait
もうまくいきませんでした。働いていた唯一の事はあるif errorlevel 1 (...)
NEQ
代わりに使用することをお勧めしEQU
ますか?Windows XPがそれを行うかどうかは
これは本当にある場合に機能します:App1.exe呼び出し-> .bat実行-> app2.exe
App2はerrorlevel 1 ...を返しますが、.batでそれをキャッチし、app1に再レイズする必要があります。
方法:
.batの場合:
app2.exe
if %ERRORLEVEL% GEQ 1 EXIT /B 1
これは、app2の後のerrorlevelのチェックです。> 0の場合、.batは終了し、呼び出し元のapp1のerrorlevelを1に設定します。
if %ERRORLEVEL% GEQ 1 EXIT /B %ERRORLEVEL%
。
IF %ERRORLEVEL% NEQ 0 EXIT /B %ERRORLEVEL%
より良いオプションかもしれません。しかし、プログラムがエラー時に返すものを本当に知る必要があります。一部のプログラムは、特殊なタイプの成功に対して特定のゼロ以外のコードを返します。