web-dev-qa-db-ja.com

スペースとパスとコマンドで「開始」を使用してWindowsでバッチファイルを作成する方法

Windows .cmdファイルで複数のコンソールアプリケーションを起動するバッチファイルを作成する必要があります。これは、startコマンドを使用して実行できます。

ただし、コマンドにはパスが含まれています。また、スペースがあるパラメーターも渡す必要があります。これを行う方法?

例えば。バッチファイル

start "c:\path with spaces\app.exe" param1 "param with spaces"
77
Tim

実際、彼の例はうまくいきません(最初はそうだと思っていましたが)。 Startコマンドのヘルプに基づいて、最初のパラメーターは新しく作成されたコマンドプロンプトウィンドウの名前で、2番目と3番目はそれぞれアプリケーションとそのパラメーターへのパスです。アプリへのパスの前に別の「」を追加すると、機能するはずです(少なくとも私にとってはそうでした)。次のようなものを使用します。

start "" "c:\path with spaces\app.exe" param1 "param with spaces"

最初の引数を、新しいコマンドプロンプトのタイトルにしたいものに変更できます。作成されるのがWindowsアプリの場合、コマンドプロンプトは表示されず、タイトルは関係ありません。

163
Andy

アポストロフィでパスをエスケープすることは正しいですが、startコマンドは新しいウィンドウのタイトルを含むパラメーターを取ります。このパラメーターは周囲のアポストロフィによって検出されるため、アプリケーションは実行されません。

次のようなものを試してください:

start "Dummy Title" "c:\path with spaces\app.exe" param1 "param with spaces"
15
Steffen
start "" "c:\path with spaces\app.exe" "C:\path parameter\param.exe"

上記の提案を使用したとき、私は持っています:

'c:\ path'は、内部コマンドまたは外部コマンド、操作可能なプログラムまたはバッチファイルとして認識されません。

2番目のqoutationマークはコマンドの実行を妨げると思います。ソリューションの下でいくつかの検索を行った後、私の時間を節約します。

start "" CALL "c:\path with spaces\app.exe" "C:\path parameter\param.exe"
2
Mustafa Kemal

興味深いことに、Windows Embedded Compact 7では、タイトル文字列を指定できないようです。最初のパラメーターは、コマンドまたはプログラムでなければなりません。

1
Mark Agate

次のようなものを使用します。

start/d C:\ Windows\System32\calc.exe

start/d "C:\ Program Files\Mozilla

Firefox "firefox.exe start/d

「C:\ Program Files\Microsoft

Office\Office12 "Excel.EXE

また、特別なバッチファイルエディタを使用することをお勧めします- Dr.Batcher

0
user243871