249

我在 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 启动具有多个命令行参数的程序?

4

12 回答 12

518

START 有一个特殊性,涉及第一个参数周围的双引号。如果第一个参数有双引号,它会将其用作新窗口的可选 TITLE。

我相信你想要的是:

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

换句话说,在程序名称之前给它一个空标题来伪造它。

于 2008-09-30T17:25:33.193 回答
16

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

将目标设置为:

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

一切就绪。由于您没有启动命令提示符来启动它,因此不会有 DOS 框。

于 2008-09-30T17:29:31.750 回答
4

空格是 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",则第一个将是 theVirtual~1.exe和第二个Virtual~2.exe,依此类推。

或者使用像 VirtualBox 这样的 VNC-Client。

于 2012-06-30T14:11:35.490 回答
4

您可以通过使用 [ /D"Path"]/D 用于指定路径而不是路径+程序来使用引号。似乎随后同一行上的所有代码都恢复正常,这意味着您不需要分隔路径和文件。

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

或者:

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

将以默认网页启动 IE。

    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

于 2013-02-12T21:37:03.663 回答
2

这些答案都不适合我。

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

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

我不确定这是否真的在等待完成......我正在安装的 C++ Redistributable 速度足够快,这并不重要

于 2019-06-04T15:48:58.950 回答
1

如果要在 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: (Any Other)drive 的测试文件夹中传递参数和 .exe 文件

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

于 2016-02-17T13:45:09.833 回答
0

“特殊性”中的答案是正确的,直接回答了问题。正如 TimF 所回答的,由于第一个参数用引号引起来,因此它被视为窗口标题。

另请注意,Virtual PC 选项被视为“启动”命令本身的选项,对“启动”无​​效。这适用于所有具有“开始”命令的 Windows 版本。

'start' 将引用的参数视为标题的问题比仅发布的问题更令人讨厌。如果你运行这个:

start "some valid command with spaces"

你会得到一个新的命令提示符窗口,窗口标题的结果很明显。更烦人的是,这个新窗口没有继承自定义的字体、颜色或窗口大小,它只是 cmd.exe 的默认设置。

于 2015-05-20T15:59:37.177 回答
0

如果必须在任何参数处使用双引号,则会出现错误“'c:\somepath' is not Recognized a internal or external command, operable program or batch file”。使用双引号时,我建议使用以下解决方案: https ://stackoverflow.com/a/43467194/3835640

于 2017-04-18T08:30:12.907 回答
-1

/b范围

start /b "" "c:\program files\Microsoft Virtual PC\Virtual PC.exe" -pc "MY-PC" -launch
于 2016-05-14T17:46:16.233 回答
-4

你有没有尝试过:

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

?

于 2008-09-30T17:23:29.970 回答
-4

将命令放在批处理文件中,并使用参数调用它。

另外,你试过了吗?(移动结束引号以封装参数)

start "c:\program files\Microsoft Virtual PC\Virtual PC.exe -pc MY-PC -launch"
于 2008-09-30T17:24:24.787 回答
-4

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

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

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

于 2013-06-17T05:33:58.290 回答