[記事公開日]2025/10/06
🔄 callコマンドの使い方|別バッチファイルの呼び出しと制御
もくじ
はじめに
Windowsのバッチファイルを使った自動化では、複数のスクリプトを組み合わせて実行するケースが多くあります。その際に役立つのが callコマンド です。単に別のバッチファイルを起動するのではなく、呼び出し元に制御を戻す という点が最大の特徴です。
この記事では、callコマンドの基本操作、活用シーン、注意点を詳しく解説します。
🛠 callコマンドとは?
-
役割:別のバッチファイルを実行し、終了後に呼び出し元へ制御を戻す
-
用途:処理をモジュール化し、再利用性を高める
-
特徴:
startコマンドと違い、処理が終わると必ず元に戻る
📌 基本的な使い方
別のバッチを呼び出す
call backup.bat
-
backup.batを実行し、処理終了後に呼び出し元に戻る
引数を渡す
call backup.bat C:\data D:\backup
-
backup.batにパラメータとしてパスを渡す -
バッチ内では
%1%2として参照可能
ラベルを呼び出す
call :subroutine
echo メイン処理に戻りました
exit /b
:subroutine
echo サブルーチン処理です
exit /b
-
同一バッチ内でサブルーチンを定義して呼び出し可能
🔍 応用的な使い方
共通処理のモジュール化
-
複数のバッチファイルから同じ処理を共通バッチにまとめ、
callで呼び出すことで効率化
サブルーチン活用
-
バッチ内に複数のラベルを用意し、
callで分岐処理を整理
引数による柔軟な制御
call deploy.bat staging
call deploy.bat production
-
引数を切り替えることで、同じ処理を環境別に実行
📚 活用シーン
システム管理者
-
利用例:バックアップ処理を共通バッチ化し、複数の環境で使い回す
-
効果:メンテナンス性が向上
開発者
-
利用例:テスト環境構築スクリプトをモジュール化
-
効果:処理を分割し、保守性を高める
運用担当
-
利用例:定期処理を呼び出し元バッチから一括管理
-
効果:スケジューラと組み合わせて効率的に運用
⚠️ 注意点
-
callを使わずに単純にバッチを実行すると、制御が戻らず処理が途中で終了する -
引数は必ず
%1%2… と順番に受け取るため、入力チェックが必要 -
サブルーチン呼び出し時は
exit /bを忘れると、バッチ全体が終了するので注意 -
再帰的に
callを多用すると無限ループになる可能性がある
📊 まとめ表
| コマンド | 用途 | 活用例 |
|---|---|---|
| call batch.bat | 別バッチを呼び出し | 共通処理の利用 |
| call batch.bat arg1 arg2 | 引数付き呼び出し | 環境別処理 |
| call :label | サブルーチン呼び出し | バッチ内分岐 |
関連記事
さいごに
「call」コマンドは、Windowsバッチ処理を効率的に構築する上で欠かせない存在です。単純な呼び出しだけでなく、引数の活用やサブルーチン化により、スクリプトをより整理された形で作成できます。
複雑な処理を複数のバッチに分割し、保守性と再利用性を高めるために、ぜひ活用してみてください。
