web-dev-qa-db-ja.com

開始プログラムに渡されたパラメーターを指定して "start"コマンドを使用する

Virtual PC 2007にバーチャルマシンがあります。

デスクトップから起動するには、バッチファイルに次のコマンドを入力します。

"c:\program files\Microsoft Virtual PC\Virtual PC.exe" -pc "MY-PC" -launch

しかし、バーチャルマシンがシャットダウンされるまで、ホストコンピューターにdosプロンプトが表示されたままになり、Virtual PCコンソールを終了します。うざい。

そのため、代わりにSTARTコマンドを使用するようにコマンドを変更しました。

start "c:\program files\Microsoft Virtual PC\Virtual PC.exe" -pc MY-PC -launch

しかし、それはVirtual PCに渡されたパラメータを調べます。

START /?は、パラメータが実際にその場所にあることを示します。 STARTを使用して複数のコマンドライン引数を使用してプログラムを起動する人はいますか?

207
JosephStyons

STARTには、最初のパラメータを二重引用符で囲むという特殊性があります。最初のパラメータに二重引用符がある場合は、それを新しいウィンドウのオプションのTITLEとして使用します。

私はあなたが欲しいものがそれであると信じます:

start "" "c:\program files\Microsoft Virtual PC\Virtual PC.exe" -pc MY-PC -launch

言い換えれば、プログラムの名前の前に空のタイトルを付けて偽造します。

432
Tim Farley

バッチファイルの代わりに、デスクトップにショートカットを作成できます。

ターゲットを次のように設定します。

"c:\program files\Microsoft Virtual PC\Virtual PC.exe" -pc "MY-PC" -launch

これで準備は完了です。起動するように指示するコマンドを起動していないので、DOSボックスは表示されません。

14
Ferruccio

スペースはDOS/CMDの問題なので、次の方法でパスにアクセスしてください。

cd "c:\program files\Microsoft Virtual PC"

そして、次のようにしてVPCを起動します。

start Virtual~1.exe -pc MY-PC -launch

~1は、先頭に"Virtual"を付けた最初のexeを意味します。したがって、"Virtual PC.exe""Virtual PC1.exe"がある場合、最初のVirtual~1.exeと2番目のVirtual~2.exeとなります。

またはVirtualBoxのようなVNCクライアントを使用してください。

3
ghostdog21

パラメータに二重引用符を使用する必要がある場合は、エラー「c:\ somepath」が内部コマンドまたは外部コマンド、操作可能プログラム、またはバッチファイルとして認識されていません」が発生する可能性があります。二重qoutation markを使用するとき、私は解決策の下に以下を提案します: https://stackoverflow.com/a/43467194/383564

0
Mustafa Kemal

これらの答えのどれも私のために働きませんでした。

代わりに、Callコマンドを使用しなければなりませんでした:

Call "\\Path To Program\Program.exe" <parameters>

これが実際に完了を待っているかどうかはわかりません。インストールしていたC++再頒布可能パッケージの速度が十分に速くなっても問題ありませんでした。

0

「特異性」の答えは正解で、直接質問に答えます。 TimFが答えたように、最初のパラメータは引用符で囲まれているので、ウィンドウタイトルとして扱われます。

Virtual PCのオプションは 'start'コマンド自体のオプションとして扱われており、 'start'には無効です。これは、 'start'コマンドがあるすべてのバージョンのWindowsに当てはまります。

引用符で囲まれたパラメータをタイトルとして扱う 'start'に関するこの問題は、投稿された問題だけではさらに厄介です。あなたがこれを実行するならば:

start "some valid command with spaces"

あなたは新しいコマンドプロンプトウィンドウを得ます、ウィンドウタイトルの明らかな結果。さらに面倒なことに、この新しいウィンドウはカスタマイズされたフォント、色、ウィンドウサイズを継承しません。cmd.exeのデフォルトに過ぎません。

0
BitDreamer

パスの指定には[/D"Path"] use /Donlyを使用して引用符を使用できますが、path +プログラムは指定できません。それに続く同じ行のすべてのコードは通常の状態に戻り、パスとファイルを分ける必要はないようです。

    start  /D "C:\Program Files\Internet Explorer\" IEXPLORE.EXE

または

    start  /D "TITLE" "C:\Program Files\Internet Explorer\" IEXPLORE.EXE

デフォルトのWebページでIEを起動します。

    start  /D "TITLE" "C:\Program Files\Internet Explorer\" IEXPLORE.EXE www.bing.com

bingで始まりますが、ホームページをリセットしません。

/Dは "directory"を表し、引用符を使用しても問題ありません。

間違った例:

    start  /D "TITLE" "C:\Program Files\Internet Explorer\IEXPLORE.EXE"

を与えます:

エラー "カレントディレクトリが不正です。"

/Dの後には必ずディレクトリパスを続けてください。それからスペースとあなたが起動/実行したいバッチファイルまたはプログラム

テスト済みでXPの下で動作しますが、Windows Vista/7/8ではUACを調整する必要があるかもしれません。

- ムビオス

0
Mrbios