バッチファイルで.exe
ファイルを実行する際に、start
コマンドとcall
コマンドを使う方法をご存知ですか?これらのコマンドは一見似ていますが、実行のタイミングや挙動に違いがあります。本記事では、これらのコマンドの使い方と違いを詳しく解説します。
exeファイルを実行するコマンド
バッチファイルで.exe
ファイルを実行するには、主に以下のコマンドを使用します。
- startコマンド
- callコマンド
これらのコマンドにはそれぞれ特徴があり、用途に応じて使い分ける必要があります。
startコマンドの使い方
start
コマンドは、新しいコマンドプロンプトウィンドウを開いて指定したプログラムを実行します。
基本構文:
start "" "実行したいプログラムのパス"
ポイント:
- ウィンドウタイトルを指定するために、最初の
""
は空にしておきます。 - フルパスを指定する場合は、ダブルクォーテーションでパスを囲みます。
例:
start "" "C:\Program Files\Microsoft Office\root\Office16\excel.exe"
start "" "C:\Program Files\Microsoft Office\root\Office16\winword.exe"
公式ドキュメント:
callコマンドの使い方
call
コマンドは、現在のバッチファイルの実行を一時停止し、指定したプログラムやバッチファイルを実行します。
基本構文:
call "実行したいプログラムのパス"
ポイント:
- プログラムの実行が終了するまで、次のコマンドは実行されません。
- 一部のWindows標準プログラムはパスを指定しなくても実行可能です。
例:
call "C:\Program Files\Microsoft Office\root\Office16\excel.exe"
call "C:\Program Files\Microsoft Office\root\Office16\winword.exe"
公式ドキュメント:
startとcallの違い
特徴 | startコマンド | callコマンド |
---|---|---|
実行タイミング | 非同期(次のコマンドもすぐに実行される) | 同期(プログラム終了まで次のコマンドは実行されない) |
複数プログラムの同時実行 | 可能 | 不可(順次実行) |
エラーハンドリング | エラーが発生しても次のコマンドを実行 | エラーが発生すると次のコマンドは実行されない |
主な用途 | 複数のプログラムを同時に起動したい場合 | プログラムを順番に確実に実行したい場合 |
実際のバッチファイル作成例
1. start.batの作成
内容:
start "" "C:\Program Files\Microsoft Office\root\Office16\excel.exe"
start "" "C:\Program Files\Microsoft Office\root\Office16\winword.exe"
結果:
- ExcelとWordが同時に起動します。
2. call.batの作成
内容:
call "C:\Program Files\Microsoft Office\root\Office16\excel.exe"
call "C:\Program Files\Microsoft Office\root\Office16\winword.exe"
結果:
- Excelを閉じると、次にWordが起動します。
よくある質問(Q&A)
Q1: startコマンドでプログラムを非表示で実行できますか?
A1: はい、start
コマンドに/B
オプションを付けることで、ウィンドウを表示せずにプログラムを実行できます。
start /B "" "実行したいプログラムのパス"
Q2: callコマンドで複数のプログラムを同時に起動する方法はありますか?
A2: call
コマンド自体は同期的に動作するため、同時起動はできません。同時に起動したい場合は、start
コマンドを使用してください。
Q3: パスにスペースが含まれる場合の対処法は?
A3: パス全体をダブルクォーテーションで囲むことで対応できます。
start "" "C:\Program Files\Example\program.exe"
Q4: startとcall以外で.exeファイルを実行する方法はありますか?
A4: .exe
ファイルを直接バッチファイル内で指定することで実行可能ですが、エラー処理や制御が難しくなるため、start
やcall
の使用をおすすめします。
まとめ
バッチファイルで.exe
ファイルを実行する際は、start
コマンドとcall
コマンドを用途に応じて使い分けましょう。
- 同時に複数のプログラムを起動したい場合:
start
コマンドが適しています。 - プログラムを順番に確実に実行したい場合:
call
コマンドを使用します。
最後までお読みいただきありがとうございます。
コメント