開始されたプログラムに渡されたパラメーターで「start」コマンドを使用する


224

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を使用して、複数のコマンドライン引数を持つプログラムを起動した人はいますか?

回答:


467

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

私はあなたが望むものは次のとおりだと信じています:

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

つまり、偽造するプログラムの名前の前に空のタイトルを付けます。


2
これは非推奨ですか?勝利7で私は得るStart-Process : Cannot validate argument on parameter 'FilePath'. The argument is null or empty. Supply an argument that is not null or empty and then try the command again
地質学

1
誰が想像したでしょう。回答に対する賛成票の数だけが、Microsoftがこの「特異性」を修正するのに十分な理由になるはずです。
Piyush Soni、2015

7
@geotheoryこれは古いコメントだと思いますが、PowerShellでは、startはStart-Processのエイリアスです。cmd.exe(少し時代遅れですが、非推奨ではありません)では、「開始」が異なります。どちらも他のプロセスを開始するためのものですが、startはcmdの古い埋め込みコマンドです。
Adam Plocher、2016年

これは私に多くの頭痛を引き起こしました。解決策をありがとう!
uceumern 2018年

15

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

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

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

これで準備は完了です。コマンドプロンプトを起動して起動するわけではないため、DOSボックスはありません。


3

スペースはDOS / CMDの問題なので、次の方法でパスに移動する必要があります。

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

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

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

~1最初の最初exeを意味し"Virtual"ます。したがって、a "Virtual PC.exe"とa がある場合"Virtual PC1.exe"、1 Virtual~1.exe番目は2番目、2番目Virtual~2.exeと続きます。

または、VirtualBoxのようなVNCクライアントを使用します。


1
これは妥当な回避策のように見えますが、根本的な問題には実際には対応していません。これは、受け入れられた回答でカバーされています。
サム

1
これは、短いファイル名が有効になっていない場合は機能しません。私は自分のシステムで8.3ファイル名を常に無効にしています
phuclv

1

これらの答えはどれもうまくいきませんでした。

代わりに、Callコマンドを使用する必要がありました。

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

これが実際に完了するのを待つかどうかはわかりません...私がインストールしていたC ++再頒布可能パッケージは、問題にならないほど高速になりました


@rene編集ありがとうございます。さらに回答を追加する場合は、必ずコードブロック形式を使用します
JustAnotherMikhail

0

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

また、Virtual PCオプションは「start」コマンド自体のオプションとして扱われ、「start」には無効であることにも注意してください。これは、 'start'コマンドがあるWindowsのすべてのバージョンに当てはまります。

引用されたパラメータをタイトルとして扱う「開始」に関するこの問題は、投稿された問題だけよりもさらに厄介です。これを実行すると:

start "some valid command with spaces"

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


0

c:ドライブのテストフォルダーにパラメーターと.exeファイルを渡す場合

start "parameter" "C:\test\test1.exe" -pc My Name-PC -launch

c:ドライブのテストフォルダーにパラメーターと.exeファイルを渡したくない場合

start "" "C:\test\test1.exe" -pc My Name-PC -launch

Hのテストフォルダーにパラメーターと.exeファイルを渡したくない場合:(その他の)ドライブ

start "" "H:\test\test1.exe" -pc My Name-PC -launch


0

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


0

パス+プログラムではなく、パスを指定する/D"Path"ために/D のみ [ ]を使用して、引用符を使用できます。次の同じ行のすべてのコードは通常に戻るようですが、パスとファイルを分離する必要はありません。

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

または:

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

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

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

Bingで始まりますが、ホームページはリセットされません。

/D 「ディレクトリ」を表し、引用符を使用しても問題ありません。

間違った例:

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

与える:

エラー「現在のディレクトリは無効です。

/D後にディレクトリパスを指定する必要があります。次に、スペースと、開始/実行するバッチファイルまたはプログラム

テスト済みでXPで動作しますが、Windows Vista / 7/8ではUACの調整が必要になる場合があります。

-Mrbios


-1

/b パラメータ

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

このパラメーターは何をしますか?
Azeezah M 2016

3
@AzeezahM / bは、新しいcmdウィンドウが開かないことを意味します。しかし、これはopの質問には答えません。
aclave1 2016年

-4

やってみました:

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


-4

コマンドをバッチファイル内に配置し、パラメーターを指定して呼び出します。

また、これはもう試しましたか?(パラメーターをカプセル化するために最後の引用を移動します)

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

-4

「Virtual PC.exe」をフォルダ内の「VirtualPC.exe」のようなスペースのない名前に変更します。start "path"""で書き込むと、CMDはパスをタイトルとして新しいコマンドウィンドウを開始します。名前をスペースのない名前に変更し、メモ帳でこれを書き込んでから、Name.cmdまたはName.batのように保存します。

CD\
CD Program Files
CD Microsoft Virtual PC
start VirtualPC.exe
timeout 2
exit

このコマンドは、CMDをフォルダーにリダイレクトし、VirualPC.exeを起動し、2秒待って終了します。


1
ソフトウェアが更新されるとどうなりますか?突然、孤立したvirtualpc.exeができました。
Michael Beck
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.