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

Jos*_*ons 217 windows command-prompt

我在Virtual PC 2007中有一台虚拟机.

要从桌面启动它,我在批处理文件中有以下命令:

"c:\program files\Microsoft Virtual PC\Virtual PC.exe" -pc "MY-PC" -launch
Run Code Online (Sandbox Code Playgroud)

但是这会在主机上留下dos提示,直到虚拟机关闭,然后退出Virtual PC控制台.那很烦人.

所以我更改了命令以使用START命令,而不是:

start "c:\program files\Microsoft Virtual PC\Virtual PC.exe" -pc MY-PC -launch
Run Code Online (Sandbox Code Playgroud)

但它扼杀了传入Virtual PC的参数.

START /?表示参数确实进入该位置.有没有人用START来启动一个包含多个命令行参数的程序?

Tim*_*ley 453

START具有涉及第一个参数的双引号的特性.如果第一个参数有双引号,则将其用作新窗口的可选TITLE.

我相信你想要的是:

start "" "c:\program files\Microsoft Virtual PC\Virtual PC.exe" -pc MY-PC -launch
Run Code Online (Sandbox Code Playgroud)

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

  • @geotheory我意识到这是一个旧的评论,但在PowerShell中,start是Start-Process的别名.在cmd.exe中(有点过时,但没有弃用)"start"是不同的.它们都用于启动其他进程,但start是cmd中的旧嵌入式命令. (4认同)
  • 不推荐使用吗?在Win 7中,我得到`Start-Process:无法验证参数'FilePath'上的参数。参数为null或为空。提供一个不为null或为空的参数,然后重试该命令` (2认同)

Fer*_*cio 15

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

将目标设置为:

"c:\program files\Microsoft Virtual PC\Virtual PC.exe" -pc "MY-PC" -launch
Run Code Online (Sandbox Code Playgroud)

你们都准备好了.由于您没有启动命令提示符来启动它,因此将没有DOS Box.


小智 7

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

    start  /D "C:\Program Files\Internet Explorer\" IEXPLORE.EXE
Run Code Online (Sandbox Code Playgroud)

或者:

    start  /D "TITLE" "C:\Program Files\Internet Explorer\" IEXPLORE.EXE
Run Code Online (Sandbox Code Playgroud)

将使用默认网页启动 IE。

    start  /D "TITLE" "C:\Program Files\Internet Explorer\" IEXPLORE.EXE www.bing.com
Run Code Online (Sandbox Code Playgroud)

从 Bing 开始,但不会重置您的主页。

/D代表“目录”并且使用引号就可以了!

错误示例:

    start  /D "TITLE" "C:\Program Files\Internet Explorer\IEXPLORE.EXE"
Run Code Online (Sandbox Code Playgroud)

给出:

错误“当前目录无效。

/D后面只能跟一个目录路径。然后空格和您想要启动/运行的批处理文件或程序

已在 XP 下测试并工作,但 Windows Vista/7/8 可能需要对 UAC 进行一些调整。

-Mrbios