windows xp – どのようにバッチファイルの最後のコマンドの終了コードを確認するには?

batch windows-xp

Windowsのバッチファイルの中では、7-zipのように使っています

...\right_path\7z a output_file_name.zip file_to_be_compressed

7zの終了コードを確認して、適切な対処をするにはどうすればいいですか?

  75  Misha Moroshko  2010-10-01


ベストアンサー

1以上のリターンコードをテストします

if ERRORLEVEL 1 echo Error

or

if %ERRORLEVEL% GEQ 1 echo Error

または 0 に等しいリターンコードをテストします

if %ERRORLEVEL% EQU 0 echo OK

echoを表示しているGOTOなど、他のコマンドを使うことができます

88  Paused until further notice.  2010-10-01


これは、あなたが持っているときに本当に動作します。App1.exeは->を呼び出します; .batは–>を実行します; app2.exe

App2はエラーレベル1を返します…しかし、.batでそれをキャッチしてapp1に再レイズする必要があります…そうしないと.batはエラーレベルを食べてしまい、app1はそれを知ることができません

Method:

In .bat:

app2.exe
if %ERRORLEVEL% GEQ 1 EXIT /B 1

これはapp2の後にエラーレベルをチェックするものです。もし> 0ならば、.batは終了し、呼び出し元のapp1のエラーレベルを1に設定します

11  Jonesome Reinstate Monica  2013-04-19


Teamcityのパイプラインにバッチスクリプトを入れていたのですが、子スクリプトがコード1で終了した後に終了しませんでした

問題を修正するために、子スクリプトの呼び出しの後にこの文字列 IF %ERRORLEVEL% NEQ 0 EXIT 1 を追加しました

main-script.bat

...some code
call child-script.bat
IF %ERRORLEVEL% NEQ 0 EXIT 1
...some code

子スクリプトの呼び出し後、終了結果は%ERRORLEVEL%に保存されます。もしエラーで終了した場合は、値が0になっていないので、これを確認し、エラーであればコード1(エラー)で終了します

0  Michael Klishevich  2020-04-17


Try this:

cd.>nul | call Your_7z_File.Bat && Goto :Next || Goto :Error

:: Or...

cd.>nul | ...\right_path\7z.exe a output_file_name.zip file_to_be_compressed && Goto :Next || Goto :Error

0  community wiki  None


タイトルとURLをコピーしました