HOWTO · Batch

バッチ スクリプトでのエラー処理

このチュートリアルでは、バッチ スクリプトでのエラー処理について説明します。

このページの内容

すべてのスクリプトおよびプログラミング言語には、Java にエラー処理用の try-catch が含まれているように、エラー ハンドラーが含まれています。 バッチ スクリプトでは、これを行う直接的な方法はありませんが、バッチ スクリプト名 %ERRORLEVEL% の組み込み変数を使用して、バッチ スクリプトでエラー ハンドラーを作成できます。

この記事では、エラーと失敗を処理するバッチ スクリプトを作成する方法を示します。 また、トピックを簡単にするいくつかの例を紹介します。

バッチ スクリプトでのエラー処理

コマンドが正常に実行されると、コマンドが正常に実行されたか実行に失敗したかを示す EXIT CODE が常に返されます。 したがって、バッチ ファイルでエラー処理を作成するには、プログラムでその EXIT CODE を使用できます。

以下の一般的な形式に従って、エラー ハンドラーを作成できます。

@Echo off
SomeCommand && (
  ECHO Message for Success
) || (
  ECHO Message for Failure or Error
)

%ERRORLEVEL% という名前の変数をチェックすることで、それを行うこともできます。 変数に 0 以外の値が含まれている場合、コマンドの実行時に問題またはエラーが発生している可能性があります。 %ERRORLEVEL% 変数をテストするには、以下のコード例に従います。

@ECHO off
Some Command Here !!!
IF %ERRORLEVEL% NEQ 0 (Echo Error found when running the command &Exit /b 1)

キーワード NEQ は等しくないことを意味することに注意してください。 コードに問題またはエラーがある場合、変数 %ERRORLEVEL% にはゼロ以外の値のみが含まれます。

エラーを含む例

以下で、例を共有しました。 Your_file.bat という名前のバッチ ファイルをある場所から実行します。

そのファイルをディレクトリから意図的に削除しました。 だから、それはエラーコマンドです。

この例のコードは次のようになります。

@echo off
ECHO Running a Batch file
CD G:\BATCH\
CALL Your_file.bat
IF  errorlevel 1 GOTO ERROR
ECHO The file run successfully.
GOTO EOF

:ERROR
ECHO The file didn't run successfully.
CMD /k
EXIT /b 1

:EOF

ファイルがディレクトリに存在しないため、エラーが表示され、上記で共有されたコードを実行すると、以下の出力が得られます。

出力:

Running a Batch file
The system cannot find the path specified.
'Your_file.bat' is not recognized as an internal or external command,
operable program or batch file.
The file didn't run successfully.

正常に実行されるエラーのないコード例

上記の例では、コードがどのように機能するかを理解するために意図的にコードを間違えています。 以下のように修正すると:

@echo off
ECHO Running a Batch file
CALL "G:\BATCH\Yourfile.bat"
IF  errorlevel 1 GOTO ERROR
ECHO The file runs successfully.
GOTO EOF

:ERROR
ECHO The file didn't run successfully.
CMD /k
EXIT /b 1

:EOF

次に、次のような出力が得られます。

Running a Batch file
This is from the first file
The file runs successfully.

ここで説明したすべてのコマンドは、Windows コマンド プロンプトまたは CMD 環境専用です。