1. ホーム
  2. batch-file

[解決済み】バッチファイルをエラー発生時に終了させる方法は?

2022-03-26 09:58:04

質問

同じ実行ファイルを異なるパラメータで何度も呼び出しているバッチファイルがあります。 呼び出しの1つが何らかのレベルのエラーコードを返した場合、直ちに終了させるにはどうしたらよいでしょうか?

基本的には、MSBuildの ContinueOnError=false .

解決方法は?

を確認します。 errorlevel の中に if ステートメントを実行し exit /b (を終了させる)。 b cmd.exeプロセス全体ではなく、atchファイルのみ)を0以外の値で指定した場合。

same-executable-over-and-over.exe /with different "parameters"
if %errorlevel% neq 0 exit /b %errorlevel%

errorlevelの値をバッチファイルの外部に伝播させたい場合

if %errorlevel% neq 0 exit /b %errorlevel%

しかし、もしこれが for は、少し厄介なことになります。次のようなものが必要になります。

setlocal enabledelayedexpansion
for %%f in (C:\Windows\*) do (
    same-executable-over-and-over.exe /with different "parameters"
    if !errorlevel! neq 0 exit /b !errorlevel!
)

編集する 各コマンドの後にエラーを確認する必要があります。cmd.exe/command.com バッチには、グローバルな "on error goto" タイプのコンストラクトは存在しません。また、私のコードを更新しました。 コードモンキー XPやVistaでのバッチハッキングでは、エラーレベルがマイナスになったことはないのですが。