Windowsでパスを指定した「start」とスペースを含むコマンドを使用してバッチファイルを作成する方法

StackOverflow https://stackoverflow.com/questions/72671

  •  09-06-2019
  •  | 
  •  

質問

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

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

例えば。バッチファイル

start "c:\path with spaces\app.exe" param1 "param with spaces"
役に立ちましたか?

解決

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

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

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

他のヒント

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

次のようなことを試してください。

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

上記の提案を使用すると、次のようになります。

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

2 番目の引用符がコマンドの実行を妨げていると思います。以下の解決策をいくつか検索した後、一日を節約できます。

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

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

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

/d C:\Windows\System32\calc.exe を開始します

start /d "C:\Program Files\Mozilla

Firefox" Firefox.exe 起動 /d

「C:\プログラム ファイル\Microsoft

Office\Office12" EXCEL.EXE

また、特別なバッチ ファイル エディタを使用することをお勧めします。 バッチャー博士

例のように、パスと引数を引用符内のスペースで囲む必要があります。コマンドはパラメーターが渡されるときに引用符を処理する必要がある場合がありますが、通常は大した問題ではありません。

調査に成功し、うまく機能しています。私の要件は、Windowsのバッチファイルから呼び出す必要があるvbscriptを使用して電子メールを送信することです。これは私がエラーなく使用している正確なコマンドです。

START C:\Windows\System32\cscript.exe "C:\Documents and Settings\akapoor\Desktop\Mail.vbs"
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top