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

MD Aminul Islam 2023年3月20日
バッチ スクリプトでのエラー処理

すべてのスクリプトおよびプログラミング言語には、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 環境専用です。

著者: MD Aminul Islam
MD Aminul Islam avatar MD Aminul Islam avatar

Aminul Is an Expert Technical Writer and Full-Stack Developer. He has hands-on working experience on numerous Developer Platforms and SAAS startups. He is highly skilled in numerous Programming languages and Frameworks. He can write professional technical articles like Reviews, Programming, Documentation, SOP, User manual, Whitepaper, etc.

LinkedIn