Windowsのバッチファイルを使いこなす上で、「CALL」コマンドは非常に重要な役割を果たします。「CALL」は、他のバッチファイルを実行したり、サブルーチンを呼び出したりする際に使用されるコマンドです。本記事では、CALLコマンドの基本的な使い方から応用例まで、詳しく解説します。
CALLコマンドは、別のバッチファイルやサブルーチンを呼び出し、処理が完了した後に元のバッチファイルに戻るためのコマンドです。単純に別のバッチファイルを実行する「START」や「直接実行」と異なり、CALLは制御を元のスクリプトに戻します。
CALL バッチファイル名 [引数1] [引数2] ...
@ECHO OFF
CALL other_script.bat
ECHO 元のスクリプトに戻りました
この例では、「other_script.bat」を実行した後、元のスクリプトに戻り、ECHOコマンドが実行されます。
バッチファイル内で特定の処理を関数のようにまとめて、必要な時に呼び出すことができます。
CALL :ラベル名 [引数1] [引数2] ...
GOTO :EOF
:ラベル名
(処理)
GOTO :EOF
@ECHO OFF
ECHO メイン処理開始
CALL :サブルーチン
ECHO メイン処理終了
GOTO :EOF
:サブルーチン
ECHO これはサブルーチンです
GOTO :EOF
このスクリプトを実行すると、
メイン処理開始
これはサブルーチンです
メイン処理終了
と表示されます。
CALLコマンドを使用して、サブルーチンに引数を渡すことができます。
CALL :ラベル名 引数1 引数2
GOTO :EOF
:ラベル名
ECHO %1
ECHO %2
GOTO :EOF
@ECHO OFF
CALL :サブルーチン Windows バッチ
ECHO メイン処理終了
GOTO :EOF
:サブルーチン
ECHO 受け取った引数: %1 %2
GOTO :EOF
実行結果:
受け取った引数: Windows バッチ
メイン処理終了
CALLを使うことで、複数のバッチファイルを連携させることができます。
@ECHO OFF
ECHO メインスクリプト開始
CALL sub_script.bat
ECHO メインスクリプト終了
@ECHO OFF
ECHO サブスクリプトが実行されました
実行結果:
メインスクリプト開始
サブスクリプトが実行されました
メインスクリプト終了
CALLコマンドを使う際、エラー処理を適切に行うことが重要です。
@ECHO OFF
CALL other_script.bat
IF ERRORLEVEL 1 (
ECHO エラーが発生しました
) ELSE (
ECHO 正常終了しました
)
サブルーチンや外部バッチを終了する際、単に「EXIT」とすると、バッチファイル全体が終了してしまいます。一方、「EXIT /B」を使用すると、呼び出し元のバッチファイルに戻ることができます。
@ECHO OFF
CALL :サブルーチン
ECHO メインスクリプトの処理
GOTO :EOF
:サブルーチン
ECHO サブルーチンの処理
EXIT /B
このスクリプトでは、EXIT /Bを使うことでメインスクリプトの処理が継続されます。
CALLコマンドは、サブルーチンや外部バッチファイルの実行を管理するための重要なコマンドです。
CALLコマンドを活用することで、より効率的でメンテナンスしやすいバッチスクリプトを作成できるようになります。