実行すると一斉に指定のフォルダーを開いたり、複数のプログラムを起動するランチャーを Windows の標準機能だけで実現します。
-
メモ帳を開き以下を入力
start notepad
start explorer -
launcher.bat など、拡張子を .bat にして保存します。
-
launcher.bat をダブルクリックで実行すると メモ帳とエクスプローラーが開きます。
解説
-
start に続いてプログラムを指定します。
コントロールパネルを開く
start control -
スタート時に開くファイルを指定する。
start notepad C:\nonsubject.txt
start explorer C:\Program Files\KeePass Password Safe 2 -
実行ファイルのパスにスペースを含む場合は""で囲います。
start "" "C:\Program Files (x86)\Internet Explorer\iexplore.exe"start コマンドのオプションに"タイトル"があり、タイトルバーの文字列として扱われてしまうため空の "" を最初に付けます。
-
プログラムは上に記述されたものから実行され、最後に実行されたプログラムのウィンドウが一番手前に表示されます。
オプションを付けないと、ほぼ同時に開きます。
START コマンドのオプションはコマンドプロンプトから start /? で確認できます。Windows のバージョンにより微妙な違いがあるので注意。
START コマンドのオプション (Win10)
指定されたプログラムまたはコマンドを実行するためにウィンドウを開きます。
START | ["タイトル"] [/D パス] [/I] [/MIN] [/MAX] [/SEPARATE | /SHARED] [/LOW | /NORMAL | /HIGH | /REALTIME | /ABOVENORMAL | /BELOWNORMAL] [/NODE <NUMA ノード>] [/AFFINITY <16 進数の関係マスク>] [/WAIT] [/B] [コマンド/プログラム] [パラメーター] |
"タイトル" | ウィンドウのタイトル バーに表示するタイトル。 |
パス | 開始するディレクトリ。 |
B |
新しいウィンドウを作成せずにアプリケーションを起動します。 アプリケーションは Ctrl + C を無視します。 アプリケーションで Ctr l+ C を有効にしていない場合、Ctrl + Break がアプリケーションを中断する唯一の方法です。 |
I | 新しい環境は、現在の環境ではなく、cmd.exe に渡された元の環境になります。 |
MIN | ウィンドウを最小化の状態で起動します。 |
MAX | ウィンドウを最大表示の状態で起動します。 |
SEPARATE | 16 ビットの Windows プログラムを別メモリ領域で起動します。 |
SHARED | 16 ビットの Windows プログラムを共有メモリ領域で起動します。 |
LOW | IDLE 優先度クラスでアプリケーションを起動します。 |
NORMAL | NORMAL 優先度クラスでアプリケーションを起動します。 |
HIGH | HIGH 優先度クラスでアプリケーションを起動します。 |
REALTIME | REALTIME 優先度クラスでアプリケーションを起動します。 |
ABOVENORMAL | ABOVENORMAL 優先度クラスでアプリケーションを起動します。 |
BELOWNORMAL | BELOWNORMAL 優先度クラスでアプリケーションを起動します。 |
NODE | 優先 NUMA (Non-Uniform Memory Architecture) ノードを 10 進の整数で指定します。 |
AFFINITY |
プロセッサの関係マスクを 16 進数で指定します。 プロセスはこれらのプロセッサで実行されるように制限されます。 /AFFINITY と /NODE を組み合わせると、関係マスクは異なって解釈されます。NUMA ノードのプロセッサ マスクを右にシフトしてビット 0 で始まるかのように関係マスクを指定します。 プロセスは、指定した関係マスクと NUMA ノードの間で共通するプロセッサ上で実行されるように制限されます。共通するプロセッサがない場合は、プロセスは指定した NUMA ノード上で実行されるように制限されます。 |
WAIT | アプリケーションを起動し、終了するまで待ちます。 |
コマンド/プログラム |
内部コマンドまたはバッチ ファイルの場合、コマンド プロセッサは cmd.exe の /K オプションを使用して実行されます。これはコマンドの後でもウィンドウが残ることを意味します。 内部コマンドまたはバッチ ファイルではない場合、そのプログラムはウィンドウ モードのアプリケーションまたはコンソール アプリケーションとして動作します。 |
パラメーター | コマンド/プログラムに渡すパラメーターです。 |
注意: SEPARATE および SHARED オプションは 64 ビット プラットフォームでは サポートされません。
/NODE を指定すると、NUMA システム上のメモリ局所性を利用する方法でプロセスが作成されるようにできます。たとえば、共有メモリ経由で互いに頻繁に通信する2 つのプロセスを、メモリ待ち時間を最小限に抑えるために同じ優先 NUMA ノードを共有するように作成できます。これらのプロセスは可能であれば同じ NUMA ノードからメモリを割り当て、指定したノード外のプロセッサ上で実行されることもあります。
start /NODE 1 application2.exe
これら 2 つのプロセスは、さらに、同じ NUMA ノード内の特定のプロセッサ上で実行されるように制限できます。次の例では、application1 がノードの低順位の2 つのプロセッサ上で実行されるのに対し、application2 はノードの次の 2 つのプロセッサ上で実行されます。この例では、指定したノードに少なくとも 4 つの論理プロセッサがあることを想定しています。ノード番号は、関係マスクを変更しなくても、そのコンピューターの任意の有効なノード番号に変更できることに注意してください。
start /NODE 1 /AFFINITY 0xc application2.exe
コマンド拡張機能を有効にすると、コマンド ラインまたは START コマンドによる外部コマンドの起動は、次のように変更されます:
非実行可能ファイルは、ファイル名をコマンドとして入力することによって、ファイルの関連付けを使って開くことができます (例: WORD.DOC は .DOC ファイル拡張子に関連付けられているアプリケーションを起動します)。
コマンド スクリプト内でファイルの関連付けを作成する方法については、ASSOC と FTYPE コマンドを参照してください。
32 ビット GUI アプリケーションを実行する場合、CMD.EXE は、アプリケーションの終了を待たずにコマンド プロンプトに戻ります。
コマンド スクリプト内で実行する場合は、この動作は発生しません。
最初のトークンが拡張子やパス修飾子を持たない文字列 "CMD" であるコマンド ラインを実行する場合、"CMD" が COMSPEC 変数の値で置き換えられます。
これにより現在のディレクトリの CMD.EXE が使われないようにします。
最初のトークンが拡張子を含まないコマンド ラインを実行する場合、CMD.EXE は、PATHEXT 環境変数の値を使って拡張子の種類と順序を判断します。
PATHEXT 変数の既定値は、次のとおりです:
.COM;.EXE;.BAT;.CMD
この構文は PATH 変数と同じであり、各要素はセミコロンで区切られていることに注意してください。
実行可能なファイルを検索するときにどの拡張子でも一致するファイルが見つからない場合は、拡張子なしの名前がディレクトリ名と一致するかどうかを
調べます。
一致する場合は、START コマンドがそのパスでエクスプローラーを起動します。コマンド ラインから実行した場合は、そのパスに対する CD /D の実行と同じになります。
応用編
START コマンドのオプションはプログラマでないとわからないものも多いですが、実用できそうなものをいくつかピックアップしてみます。
-
/WAIT オプションを追加するとプログラムが終了した後に次の start を実行します。
start /WAIT notepad C:\arinco.txt
start "" %windir%\regedit.exeメモ帳を閉じるとレジストリ エディターが起動。
-
非実行可能ファイルのくだりについて。
関連付けがされている場合はファイル名の指定だけで開きます。
start C:\arinco.png画像(arinco.png) を Windows フォトで開く。
-
コマンド/プログラムのくだりについて。
コマンドはコマンドプロンプトの命令文。プログラムは.exeなどの実行ファイルのことです。
start dir
start wordpad.exe C:\nonsubject.txtdir がコマンド、wordpad.exe がプログラム。
パラメーターはコマンド/プログラムに渡す引数、C:\nonsubject.txt の部分です。
-
拡張子を含まないコマンドのくだりについて。
mspaint.exe や wordpad.exe の .exe を省略しても動作します。
start mspaint
start wordpadCMD.EXE は、拡張子がない場合に環境変数 PATHEXT の値を前から当てはめます。
SET PATHEXT コマンドで値を確認できます。
PATHEXT=.COM;.EXE;.BAT;.CMD;.VBS;.VBE;.JS;.JSE;.WSF;.WSH;.MSC
-
start を & でつないで一行でも記述できます。
start notepad C:\nonsubject.txt & start msedge.exeただし、わかりにくいので非推奨。レジストリのコマンドに組み込むときなどに使用します。