windows - 使用带有参数的“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来启动一个包含多个命令行参数的程序?
11个解决方案
404 votes
START具有涉及第一个参数的双引号的特性。 如果第一个参数有双引号,则将其用作新窗口的可选TITLE。
我相信你想要的是:
start "" "c:\program files\Microsoft Virtual PC\Virtual PC.exe" -pc MY-PC -launch
换句话说,在程序名称之前给它一个空标题来伪造它。
Tim Farley answered 2019-03-20T04:37:33Z
15 votes
您可以在桌面上创建快捷方式,而不是批处理文件。
将目标设置为:
"c:\program files\Microsoft Virtual PC\Virtual PC.exe" -pc "MY-PC" -launch
你们都准备好了。 由于您没有启动命令提示符来启动它,因此将没有DOS Box。
Ferruccio answered 2019-03-20T04:38:12Z
3 votes
这些空格是DOS / CMDs问题因此您应该通过以下方式访问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客户端。
ghostdog21 answered 2019-03-20T04:38:59Z
0 votes
“特殊性”的答案是正确的,直接回答了这个问题。 正如TimF所回答的那样,由于第一个参数在引号中,因此它被视为窗口标题。
另请注意,Virtual PC选项被视为“start”命令本身的选项,对“start”无效。 对于具有“start”命令的所有Windows版本都是如此。
“开始”将引用的参数视为标题的这个问题更令人讨厌,仅仅是发布的问题。 如果你运行这个:
start "some valid command with spaces"
您将获得一个新的命令提示符窗口,其中包含一个窗口标题的明显结果。更烦人的是,这个新窗口不会继承自定义的字体,颜色或窗口大小,它只是cmd.exe的默认设置。
BitDreamer answered 2019-03-20T04:39:47Z
0 votes
如果要在c:驱动器的测试文件夹中传递参数和.exe文件
start "" "H:\test\test1.exe" -pc My Name-PC -launch
如果您不希望在c:驱动器的测试文件夹中传递参数和.exe文件
start "" "H:\test\test1.exe" -pc My Name-PC -launch
如果您不希望在H :(任何其他)驱动器的测试文件夹中传递参数和.exe文件
start "" "H:\test\test1.exe" -pc My Name-PC -launch
Mack answered 2019-03-20T04:40:39Z
0 votes
如果必须在任何参数上使用双引号,则可能会出现错误“'c:\ somepath'无法识别为内部或外部命令,可运行程序或批处理文件”。我在使用双重标记时建议使用以下解决方案:[https://stackoverflow.com/a/43467194/3835640]
Mustafa Kemal answered 2019-03-20T04:41:06Z
0 votes
您可以使用[/D]使用/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必须后跟目录路径。 然后是space和要启动/运行的批处理文件或程序
测试并在XP下工作,但Windows Vista / 7/8可能需要对UAC进行一些调整。
-Mrbios
Mrbios answered 2019-03-20T04:42:35Z
-1 votes
“/ b”参数
start /b "" "c:\program files\Microsoft Virtual PC\Virtual PC.exe" -pc "MY-PC" -launch
T.Todua answered 2019-03-20T04:43:10Z
-3 votes
将“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
此命令将COMMAND重定向到该文件夹,启动Virtual.exe,等待2秒并退出。
Rafael Pereira answered 2019-03-20T04:43:46Z
-4 votes
你有没有尝试过:
start "c:\program files\Microsoft Virtual PC\Virtual PC.exe" "-pc MY-PC -launch"
?
albertein answered 2019-03-20T04:44:16Z
-4 votes
将命令放在批处理文件中,并使用参数调用该命令。
还有,你试过这个吗? (移动结束引用以封装参数)
start "c:\program files\Microsoft Virtual PC\Virtual PC.exe -pc MY-PC -launch"
Mark Allen answered 2019-03-20T04:44:58Z