バッチファイルで待機せずにアプリケーションを起動する方法は?


155

バッチファイルで待機せずにアプリケーションを実行する方法はありますか?startコマンドを試してみましたが、新しいコマンドウィンドウが作成されるだけです。


3
注— Windowsバッチスクリプトで複雑な処理を実行する場合:プロセスCが-ed .batファイルB(次にAから呼び出されstart内でcall-ed され、Bが終了してもCは開いたままの場合(たとえばCはサービスまたは何かが発生するのを待つだけで、OSがシャットダウンするまで固定のエンドポイントを持たないものです)を含む親Aは、プロセスCが閉じない限り、期待どおりに終了できない可能性があります。殺された。簡単な例を次に示します。codepad.org / KLglXDnZcall
SeldomNeedy

回答:


305

私はここで推測していますが、あなたのstart呼び出しはおそらく次のようになります:

start "\Foo\Bar\Path with spaces in it\program.exe"

タイトルとして「\ Foo \ Bar \ Path with it \ program.exe」を使用して、新しいコンソールウィンドウが開きます。

start引用符で囲まれている(または囲まれている必要がある)ものを使用する場合は、最初の引数として空の引用符を配置する必要があります。

start "" "\Foo\Bar\Path with spaces in it\program.exe"

これはstart最初に引用された引数を、新しいコンソールウィンドウのウィンドウタイトルとして解釈するためです。


17
実際のパスの前に二重引用符を付けるのに最適なヒントです。私はこれを推測したことはなかっただろう。共有していただきありがとうございます。
Alexandru Dicu 2012年

助けてくれてありがとう。また、ss64.com
Ayusman

1
@Ayusman:これらのオプションは16ビットプログラム専用です。きっとあなたの周りにまだ何もいないことを願っています。
ジョーイ2013年

4
もちろん、空の引用符である必要はありません...実際に関連するタイトルを付けることができます。何が起こっているのかを見る他の人にとってそれがより明確になるので、私はこれを強くお勧めします。start "Obligatory Atavistic Window Title" "\Foo\Bar\Path with spaces in it\program.exe"
2014年

1
グーグルで何時間も過ごした後、ようやく答えを見つけました。ありがとう!
Sellorio 2014年



4

start探しているものが見つからない場合は、あなたが説明したことを実行します。

あなたがやっていることはうまくいくはずなので、あなたはいくつかの引用符を省略している(または余分なものを入れている)可能性が非常に高いです。


はい、私は2つの引用を入れました。ただし、長いパス名には必須です。問題を解決するには?
Mark Attwood、
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.