start - 他バッチファイルの実行
startコマンドは、別のプログラムやバッチファイルを起動するためのコマンドです。
特にバッチファイルでは、「別ウィンドウで非同期実行したい」「完了を待ってから次に進みたい」「URL や関連付けされたファイルを開きたい」といった場面でよく使います。
start コマンドの基本構文
start <"タイトル"> [/d <パス>] [/i] [{/min | /max}] [{/low | /normal | /high | /realtime | /abovenormal | /belownormal}] [/wait] [/b] [コマンドまたはプログラム] [引数]
startの標準的な挙動は、起動した処理の完了を待たずに次の行へ進むことです。
startは、最初の引用符付き文字列をウィンドウタイトルとして扱います。
そのため、パスに空白が含まれるプログラムを起動するときは、start "" "C:\My Scripts\job.cmd"
のように空のタイトルを先に入れるのが安全です。
基本的な使い方
別のバッチファイルを非同期で起動する
@echo off
echo caller.cmdを開始しました。
start "" callee.cmd
echo caller.cmdが終了しました。
@echo off
echo callee.cmdを開始しました。
timeout /t 5 /nobreak > nul
echo callee.cmdが終了しました。

中小企業経営者のためのRPA入門 RPA導入を成功させる方法

60分でわかる! AIエージェント 超 入門

コマンドラインの黒い画面が怖いんです。

知識・才能ゼロでもらく~に月10万円稼ぐ! よくわかるAI副業超入門
callee.cmdは別ウィンドウで起動されるため、caller.cmd側は待機せずに終了できます。
非同期実行では、環境やタイミングによって出力の見え方が前後することがあります。 「必ずこの順番で表示される」とは限らない点に注意してください。
引数を渡して実行する
start "" callee.cmd 1
start "" callee.cmd 2
callee.cmd側では %1、%2 などで引数を受け取れます。
@echo off
echo callee.cmdを開始しました。
echo %1回目の実行です。
timeout /t 3 /nobreak > nul
echo callee.cmdが終了しました。
空白を含むパスのプログラムを起動する
start "" "C:\My Scripts\daily backup.cmd"
これは start で最もつまずきやすい書き方です。最初の "" はタイトルで、その次の引用符付き文字列が実行対象です。
URL や関連付けされたファイルを開く
実行対象に URL やドキュメントを指定すると、関連付けされたアプリケーション(既定のブラウザーなど)で開きます。
start "" https://example.com
start "" report.pdf
よく使うオプション
| オプション | 内容 |
|---|---|
/wait | 起動したプログラムの終了を待つ |
/b | 新しいウィンドウを作らずに起動する |
/min | 最小化した状態で起動する |
/max | 最大化した状態で起動する |
/d パス | 起動するプログラムの作業ディレクトリを指定する |
/low /high など | プロセスの優先度を指定する |
/wait - 終了を待ってから次へ進む
start "" /wait installer.exe /S
echo インストールが終わってからこの行が実行されます。
/b - 新しいウィンドウを開かずに起動する
start "" /b tool.exe --quiet
/b を付けると、新しいコマンドプロンプトウィンドウを開かずに起動します。GUI ではないプログラムは、呼び出し元と同じウィンドウに出力されます。
同じウィンドウ内で別のバッチファイルを呼び出し、その完了を待って処理を続けたいだけなら、start /wait より call の方が意図に合うことが多いです。
call コマンドとの違い
| コマンド | 主な用途 |
|---|---|
start | 非同期実行、別ウィンドウ起動、URL や関連付けファイルの起動 |
call | 別のバッチファイルを呼び出し、完了後に同じウィンドウで続行 |