26

我有一个批处理文件,它启动一个带有很多命令行参数的应用程序:

"C:\Program Files (x86)\Common Files\Microsoft Shared\DevServer\11.0\WebDev.WebServer40.exe" /port:1672 /path:"C:\Code.Net\My App\Iteration 6\REL_6.8.806_PerfEnhanceV\Fusion\Code\CC.Fusion\CC.Fusion.Services" /vpath:"/FusionServices"

问题是当我运行批处理文件时,DOS 窗口一直保持到命令完成,我希望它消失。所以我尝试使用该start命令,但将其放在前面,如下所示:

start "C:\Program Files (x86)\Common Files\Microsoft Shared\DevServer\11.0\WebDev.WebServer40.exe" /port:1672 /path:"C:\Code.Net\My App\Iteration 6\REL_6.8.806_PerfEnhanceV\Fusion\Code\CC.Fusion\CC.Fusion.Services" /vpath:"/FusionServices"

但我收到一个错误说明Invalid switch - "/port:1672"

我也尝试过转义双引号,但没有成功。

我该如何解决?

4

2 回答 2

65

额外的一对兔子耳朵应该可以解决问题。

start "" "C:\Program...

START将第一个引用的参数视为窗口标题,除非它是唯一的参数 - 并且在可执行文件名称之前的任何开关都被视为START开关。

于 2013-06-20T02:08:14.543 回答
10

我认为这个 Stack Overflow 的另一个答案可以解决您的问题:如何从另一个 bat 文件在后台运行 bat 文件?

基本上,您使用/Band/C选项:

START /B CMD /C CALL "foo.bat" [args [...]] >NUL 2>&1
于 2013-06-19T21:25:11.897 回答