5

いくつかのことを行うバッチ ファイルがあります。そのうちの 1 つが失敗した場合は、プログラム全体を終了したいと考えています。例えば:

@echo off
type foo.txt 2>> error.txt >> success.txt
mkdir bob

ファイル foo.txt が見つからない場合は、stderr メッセージを error.txt ファイルに追加する必要があります。そうでない場合は、foo.txt の内容を success.txt に追加します。基本的に、type コマンドが stderr を返す場合、バッチ ファイルを終了し、新しいディレクトリを作成しないようにします。エラーが発生したかどうかを確認し、次のコマンドに進む必要があるかどうかを判断するにはどうすればよいでしょうか?

4

1 に答える 1

10

ERRORLEVEL前のコマンドの終了コードを確認するために使用します。

 if ERRORLEVEL 1 exit /b

EDIT : ドキュメントには、「最後のコマンドの終了コードが EQUAL または X より大きい場合、条件は true です」と記載されています (これは で確認できますif /?)。これとは別に、ファイルが存在するかどうかを確認することもできます

 if exist foo.txt echo yada yada

条件が true の場合に複数のコマンドを実行するには:

 if ERRORLEVEL 1 ( echo error in previous command & exit /b )

また

 if ERRORLEVEL 1 (
    echo error in previous command
    exit /b
 )
于 2010-07-21T20:39:13.313 に答える