[登録されているタグ]

[記事公開日]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バッチ処理を効率的に構築する上で欠かせない存在です。単純な呼び出しだけでなく、引数の活用やサブルーチン化により、スクリプトをより整理された形で作成できます。

複雑な処理を複数のバッチに分割し、保守性と再利用性を高めるために、ぜひ活用してみてください。

すべてを開く | すべてを閉じる

ページ上部へ戻る