目次
その他の関連しそうな記事
「start」コマンドの使い方
「start」コマンドはバッチファイルやアプリケーションを呼び出すコマンドです。使い方は、引数に呼び出したいバッチファイルやアプリケーションを指定します。
1 |
start [呼び出したいバッチファイル・アプリケーション名] |
同じバッチファイルやアプリケーションを呼び出すコマンドに「call」コマンドがあります。「call」コマンドとの違いは、「call」コマンドは呼び出したバッチファイルの処理やアプリケーションの終了を待つのに対して、「start」コマンドは呼び出した後、その終了を待たずにプログラムを進めます。詳しくは、「バッチファイルからバッチファイルを呼び出す -やりたいことから検索-」を参照して下さい。
「start」コマンドで、「sub.bat」ファイルを呼び出すバッチファイルを作ってみましょう。以下のようなバッチファイル「main.bat」を作ります。
1 2 3 4 5 6 |
@echo off rem 「sub.bat」を呼び出す start sub.bat echo コード終了 |
4行目で「start」コマンドによりバッチファイル「sub.bat」を呼び出しています。
また、最後の行には最後の行に達したことを表示するために「echo」コマンドで「コード終了」というメッセージを出力します。
一方、呼び出す「sub.bat」ファイルは以下のようにします。
1 2 3 4 5 6 7 8 9 |
@echo off echo sub.batの中です。 rem 一時停止 pause rem 終了 exit |
3行目で「sub.batの中です。」と表示しています。6行目で一時停止し、バッチファイルを勝手に終了しないようにします。
では、「main.bat」を実行してみます。以下のコマンドをコマンドプロンプトに打ち込みます。
1 |
main.bat |
実行後、別窓でコマンドプロンプトが立ち上がり、そこで「sub.bat」が実行されます。別窓に「sub.batの中です。」と表示されています。
そして、「pause」コマンドで一時停止しています。つまり、「sub.bat」は終了していません。
では、元の「main.bat」を実行したコマンドプロンプト画面を見てみましょう。
「コード終了」が表示されていると思います。つまり、「sub.bat」がまだ終了していないのに、「main.bat」の処理は先に進みコードが終了したということです。このように、「start」コマンドは呼び出した処理の終了を待ちません。
呼び出した処理の終了を待ちたい場合は、「/wait」オプションを指定するか「call」コマンドを使用します。「call」コマンドについては、「call(バッチファイルやサブルーチンの呼び出し) -コマンド別解説-」を参照下さい。
「main.bat」を以下のように変更しましょう(main_wait.bat)。
1 2 3 4 5 6 |
@echo off rem 「sub.bat」を呼び出す start /wait sub.bat echo コード終了 |
以下、実行後のメインコマンドプロンプトと別窓で開いたコマンドプロンプトです。
【main_wait.bat】
【sub.bat】
今度は、「main_wait.bat」の処理が先へ進まず、待機しているのが分かります。別窓のコマンドプロンプトでキーを押して先へ進めると、「sub.bat」の処理が終了し、その後「main_wait.bat」の処理も先へ進みます。
新規ウィンドウを最大化・最小化、もしくは開かずに実行する
「start」コマンドで開く新規のウィンドウのサイズを指定して実行するオプションがいくつか存在します。
ウィンドウを最大化して実行する場合は「/max」オプション、逆に最小化して実行するには「/min」オプションを指定します。
1 2 3 4 5 6 7 |
@echo off rem ウィンドウの最大化 start /max sub.bat rem ウィンドウの最小化 start /min sub.bat |
最小化というのは、ウィンドウは現れず画面下部のクリップボードに収まっている状態です。クリップボードから選択すれば、最小化したウィンドウを表示することができます。
新しいウィンドウは開かずに起動するには、「/b」オプションを指定します。「/b」オプションを指定すると、メインのバッチファイルを実行したウィンドウ上に処理が表示されます。
同時にメインプログラムの処理も同じウィンドウに表示されるため、二つのバッチファイルの内容が同じコマンドプロンプト上に表示されることになります。
以下、「main.bat」の「start」コマンドに「/b」オプションを指定したバッチファイルと実行結果です(main_b.bat)。
1 2 3 4 5 6 |
@echo off rem 「sub.bat」を呼び出す start /b sub.bat echo コード終了 |
以下、実行結果です。
「sub.bat」内の「pause」コマンドで停止していますが、「main_b.bat」は既に終わっていることが「コード終了」の表示から分かります。
「/b」オプションは呼び出した処理の終了を待ってくれるわけではないことに注意して下さい。
新規ウィンドウのタイトルを設定する
新規で開くウィンドウのタイトルを設定するには、「”[タイトル]”」を指定します。
1 |
start "[タイトル]" sub.bat |
「main.bat」の「start」コマンドに「”[タイトル]”」を指定して実行してみます(main_title.bat)。ここでは、「”startコマンドの使い方”」としました。
1 2 3 4 5 6 |
@echo off rem 「sub.bat」を呼び出す start "startコマンドの使い方" sub.bat echo コード終了 |
以下、実行結果です。
新規ウィンドウの左上のタイトルが指定したもの変わっています。
プログラムを実行するフォルダを指定する
別のフォルダに存在するバッチファイルを実行したい場合は、「/d」オプションでパスを指定します。
1 |
start /d[バッチファイルが存在するパス] |
「main.bat」で「tmp」フォルダ内に存在する「sub.bat」を実行したい場合は、
1 |
start /dtmp sub.bat |
となります。
コメント