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