使用带有参数的“start”命令传递给已启动的程序

时间:2008-09-30 17:21:11

标签: windows command-prompt

我在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来启动一个包含多个命令行参数的程序?

12 个答案:

答案 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)

&#34; / B&#34;参数

<强> 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"