タイトル: start プログラムの実行
SEOタイトル: Windows start コマンド 完全ガイド(別ウィンドウ起動 / URL / フォルダ / /wait / /b / 優先度オプション)
| この記事の要点 |
|
start コマンドとは
start は Windows の cmd.exe(コマンドプロンプト)に組み込まれている内部コマンドで、新しいウィンドウを開いて指定したプログラムやファイル、フォルダ、URL を起動するためのものです。実行ファイルへのパスを直接打って実行する場合と異なり、start で起動したプロセスは呼び出し元と独立し、cmd を閉じても実行が続きます。
基本構文
start ["タイトル"] [オプション] コマンド [引数...]
第 1 引数の "タイトル" は新しいウィンドウのタイトルバーに表示される文字列で、省略可能です。ただし引数にダブルクォーテーションで囲まれた文字列を与えるときは、最初のクォート文字列がタイトルとして解釈されるため、ダミーのタイトルを明示する書き方が安全です。
:: パスにスペースが含まれる EXE を起動する例(タイトル空文字を入れて回避)
start "" "C:\Program Files\App\app.exe" --opt value
よく使う例
| 目的 | コマンド |
|---|---|
| メモ帳を別ウィンドウで開く | start notepad |
| 特定ファイルを関連付けで開く | start memo.txt |
| 既定ブラウザで URL を開く | start https://example.com |
| エクスプローラでフォルダを開く | start . / start "" "C:\work" |
| EXE を引数付きで起動 | start "" "C:\bin\app.exe" --port 8080 |
| cmd を新規に起動 | start cmd |
| 管理者として cmd を起動(PowerShell 経由) | powershell -Command "Start-Process cmd -Verb RunAs" |
主なオプション
| オプション | 意味 |
|---|---|
/wait | 起動したプロセスが終了するまで呼び出し元を待たせる |
/b | 新しいウィンドウを開かず、同じコンソールでバックグラウンド実行 |
/min / /max | 最小化 / 最大化状態で起動 |
/d パス | 作業ディレクトリを指定して起動 |
/i | 起動環境を cmd.exe 起動時の環境にリセット |
/low / /normal / /high / /realtime | プロセスの優先度を指定 |
/affinity 16進 | 使用 CPU コアのアフィニティマスク |
/node N | NUMA ノードを指定 |
バッチファイルでの典型用途
並列で複数プロセスを立ち上げる
@echo off
:: 3 つのワーカーを別ウィンドウで起動
start "worker1" worker.exe --id 1
start "worker2" worker.exe --id 2
start "worker3" worker.exe --id 3
echo all workers launched.
終了を待ってから次へ進む
@echo off
:: インストーラ終了を待ってから設定を流し込む
start /wait setup.exe /silent
xcopy /Y config\*.ini "C:\App\config\"
echo done.
同じウィンドウでバックグラウンド実行
@echo off
:: 新ウィンドウを開かず、cmd 内でログ出力を流す
start /b ping -t 8.8.8.8 > ping.log
start でできない / 注意すべきこと
| 状況 | 挙動・対処 |
|---|---|
| EXE のパスにスペースがある | 第 1 引数が「タイトル」と誤解されるので start "" "C:\Program Files\..." |
引数が cmd のメタ文字(& | 等) | 引数側もダブルクォートで囲む |
PowerShell で start と打った | PowerShell では start は Start-Process のエイリアス。挙動が cmd 版と一部異なる |
| 管理者権限が必要 | cmd の start には UAC 昇格オプションがない。powershell Start-Process -Verb RunAs を使う |
| 関連付けがない拡張子 | 「ファイルを開くアプリの選択」ダイアログが出る |
PowerShell の Start-Process との対応
| cmd の start | PowerShell の Start-Process |
|---|---|
start notepad | Start-Process notepad |
start /wait setup.exe | Start-Process setup.exe -Wait |
start "" "C:\app.exe" -a -b | Start-Process "C:\app.exe" -ArgumentList "-a","-b" |
| (昇格は不可) | Start-Process notepad -Verb RunAs |
FAQ
Q: start の戻り値(ERRORLEVEL)は?
A: /wait なしの場合、start 自体は起動に成功すれば 0 を返します。起動したプログラムの終了コードを取りたいなら /wait 必須です。
Q: 新ウィンドウを表示せず実行したい
A: /b で同ウィンドウ実行。完全に非表示で常駐させたいなら VBScript や powershell -WindowStyle Hidden、タスクスケジューラ登録などが候補。
Q: 環境変数 PATH に通っていない EXE は?
A: フルパス指定が必要です。start "" "C:\tools\foo.exe" のように。
関連
- コマンド一覧 — 親カテゴリ
- cmd.exe — コマンドプロンプト本体
- PowerShell
Start-Process— 機能強化版 - タスクスケジューラ — 定時実行
- 関連付け(assoc / ftype)