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