我在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来启动一个包含多个命令行参数的程序?
答案 0 :(得分:432)
START具有涉及第一个参数的双引号的特性。如果第一个参数有双引号,则将其用作新窗口的可选TITLE。
我相信你想要的是:
start "" "c:\program files\Microsoft Virtual PC\Virtual PC.exe" -pc MY-PC -launch
换句话说,在节目名称之前给它一个空标题来伪造它。
答案 1 :(得分:14)
您可以在桌面上创建快捷方式,而不是批处理文件。
将目标设定为:
"c:\program files\Microsoft Virtual PC\Virtual PC.exe" -pc "MY-PC" -launch
你已经准备好了。由于您没有启动命令提示符来启动它,因此将没有DOS Box。
答案 2 :(得分:3)
这些空格是DOS / CMD问题所以你应该通过以下方式进入Path:
cd "c:\program files\Microsoft Virtual PC"
然后只需通过以下方式启动VPC:
start Virtual~1.exe -pc MY-PC -launch
~1
表示开头的第一个exe
"Virtual"
。因此,如果有"Virtual PC.exe"
和"Virtual PC1.exe"
,则第一个是Virtual~1.exe
,第二个是Virtual~2.exe
,依此类推。
或使用像VirtualBox这样的VNC客户端。
答案 3 :(得分:0)
您可以使用[/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"
给出:
ERROR“当前目录无效。”
/D
后面只能跟一个目录路径。然后是space和要启动/运行的批处理文件或程序
在XP下测试并运行,但Windows Vista / 7/8可能需要对UAC进行一些调整。
-Mrbios
答案 4 :(得分:0)
答案"特殊性"是正确的,直接回答问题。正如TimF所回答的那样,由于第一个参数在引号中,因此它被视为窗口标题。
另请注意,Virtual PC选项被视为“开始”的选项。命令本身,并且对“开始”无效。对于具有“开始”功能的所有Windows版本都是如此。命令。
这个问题与'开始'将引用的参数视为标题更令人讨厌,只是发布的问题。如果你运行这个:
start "some valid command with spaces"
你会得到一个新的命令提示符窗口,窗口标题的结果很明显。 更令人讨厌的是,这个新窗口不会继承自定义的字体,颜色或窗口大小,它只是cmd.exe的默认设置。
答案 5 :(得分:0)
如果您必须在任何参数上使用双引号,则可能会出现错误"' c:\ somepath'不被识别为内部或外部命令,可操作程序或批处理文件"。 我在使用双重标记时建议使用以下解决方案: https://stackoverflow.com/a/43467194/3835640
答案 6 :(得分:0)
这些答案中的任何一个都不适合我。
相反,我不得不使用Call命令:
Call "\\Path To Program\Program.exe" <parameters>
我不确定这实际上是否等待完成...我安装的C ++可再发行组件的运行速度足够快,没关系
答案 7 :(得分:-1)
如果要在c:drive
的测试文件夹中传递参数和.exe文件 start "parameter" "C:\test\test1.exe" -pc My Name-PC -launch
如果您不希望在c:drive
的测试文件夹中传递参数和.exe文件 start "" "C:\test\test1.exe" -pc My Name-PC -launch
如果您不希望在H :(任何其他)驱动器的测试文件夹中传递参数和您的.exe文件
start "" "H:\test\test1.exe" -pc My Name-PC -launch
答案 8 :(得分:-1)
<强> start /b "" "c:\program files\Microsoft Virtual PC\Virtual PC.exe" -pc "MY-PC" -launch
强>
答案 9 :(得分:-3)
将“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秒钟然后退出。
答案 10 :(得分:-4)
你试过了吗?
start "c:\program files\Microsoft Virtual PC\Virtual PC.exe" "-pc MY-PC -launch"
答案 11 :(得分:-4)
将命令放在批处理文件中,并使用参数调用该命令。
另外,你试过这个吗? (移动结束引用以封装参数)
start "c:\program files\Microsoft Virtual PC\Virtual PC.exe -pc MY-PC -launch"