我有一个虚拟机在虚拟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启动一个带有多个命令行参数的程序吗?


当前回答

“怪癖”中的答案是正确的,直接回答了问题。正如TimF回答的那样,由于第一个参数是引号,因此它被视为窗口标题。

还要注意,Virtual PC选项被视为'start'命令本身的选项,对'start'无效。这适用于所有有'start'命令的Windows版本。

这个问题'start'处理引用参数作为标题是更恼人的,只是张贴的问题。如果你运行这个:

start "some valid command with spaces"

您将得到一个新的命令提示窗口,其结果是一个窗口标题。 更烦人的是,这个新窗口没有继承自定义的字体、颜色或窗口大小,它只是cmd.exe的默认值。

其他回答

您可以在桌面上创建快捷方式,而不是批处理文件。

将目标设置为:

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

一切都准备好了。由于您没有启动命令提示符来启动它,因此不会有DOS Box。

将文件夹中的“VirtualPC.exe”更改为不带空格的名称,例如“VirtualPC.exe”。 当你用“”写start“path”时,CMD会以路径为标题启动一个新的CMD窗口。 将名称更改为没有空格的名称,将其写在记事本上,然后保存为“名称”。cmd或Name.bat:

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

该命令将重定向CMD到文件夹,启动VirualPC.exe,等待2秒并退出。

/ b参数

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

“怪癖”中的答案是正确的,直接回答了问题。正如TimF回答的那样,由于第一个参数是引号,因此它被视为窗口标题。

还要注意,Virtual PC选项被视为'start'命令本身的选项,对'start'无效。这适用于所有有'start'命令的Windows版本。

这个问题'start'处理引用参数作为标题是更恼人的,只是张贴的问题。如果你运行这个:

start "some valid command with spaces"

您将得到一个新的命令提示窗口,其结果是一个窗口标题。 更烦人的是,这个新窗口没有继承自定义的字体、颜色或窗口大小,它只是cmd.exe的默认值。

这些答案对我都没用。

相反,我不得不使用Call命令:

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

我不确定这是否真的等待完成…我正在安装的c++ Redistributable运行得足够快,这并不重要