startとcallの違い【バッチファイル】

※この記事は「2021年3月7日」に更新しました。

今回は、start と call の違いを説明します。

どちらも別のバッチファイルを呼び出したりすることができます。

start と call の違い

start と call の違いです。

それぞれのコマンドを解説していきます。

startコマンド

startコマンドは、別ウィンドウでプログラムを実行するためのものです。

start [オプション] プログラム名

ちなみに、オプションには以下のようなものがあります。

/max
窓を最大化して起動する。
/min
窓を最小化して起動する。
/b
新しいウィンドウを開かずにプログラムを起動する。
/d
プログラムを実行するパスを指定する。
/wait
起動したプログラムが終了するまで待つ。




callコマンド

callコマンドを使えば、他のバッチファイルを起動することができます。

call バッチファイル名

違いは新しいプロセスとしてバッチファイルを呼び出すかどうか

startコマンドと callコマンドは、非常によく似ていますが、大きな違いは新しいプロセスとしてバッチファイルを呼び出すかどうかです。

startコマンドは、新しいプロセスとしてバッチファイルを呼び出すため、並列処理をする場合にも使います。

それに対して、callコマンドは、呼び出したバッチファイルが終了するまで処理を待ちます。

複数プログラムを一度に起動するバッチファイル

それでは、複数プログラムを一度に起動するバッチファイルを紹介します。

複数フォルダを一度にエクスプローラで起動する

複数フォルダを一度にエクスプローラで起動するバッチファイルです。

@echo off
rem エクスプローラで複数フォルダを最小化して開く
start "" /min "C:\Users\Owner\Documents"
start "" /min "C:\Users\Owner\Pictures"

私の環境で作成したものなので、自分の環境にあわせてアレンジしてみて下さい。

このようなバッチファイルを作成して、デスクトップにでもショートカットを作成しておけば、フォルダを一度に開くことができます。

startコマンドは、一つ目の “”(ダブルクォーテーション)をウィンドウのタイトルとして認識します。

複数アプリを一度に起動する

複数アプリを一度に起動するバッチファイルです。

@echo off
rem 複数アプリを一度に起動する(IE、Chrome)
start "" "C:\Program Files (x86)\Google\Chrome\Application\chrome.exe"
start "" "C:\Program Files\Internet Explorer\iexplore.exe"

アプリの実行ファイルのパスを指定することで複数アプリを一度に起動することができます。

別のバッチファイルを呼び出す

別のバッチファイルを呼び出すバッチファイルです。

まずは、呼び出し側のバッチファイル sample1.bat のソースコードです。

@echo off
echo 別のバッチファイルを呼び出します。
call sample2.bat
echo 別のバッチファイルから戻りました。
pause > nul

次に呼び出される側のバッチファイル sample2.bat のソースコードです。

@echo off
echo これは、sample2.bat というバッチファイルです。

実行結果は以下の通りです。

callコマンド

最後に【start と call の違い】

いかがでしょうか。

今回は、start と call の違いを紹介しました。

どちらもバッチファイルで使うことが多いコマンドです。

違いを理解して、上手に使っていきましょう。