我有一个批处理文件,用于启动包含大量命令行参数的应用程序:
"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"
我也试过逃避双引号,但我并没有成功。
我该如何解决?
答案 0 :(得分:54)
另外一对兔子的耳朵应该可以做到这一点。
start "" "C:\Program...
START
将第一个引用的参数视为窗口标题,除非它是唯一的参数 - 并且任何直到可执行文件名称的开关都被视为START
开关。
答案 1 :(得分:9)
我认为其他Stack Overflow答案可以解决您的问题: How do I run a bat file in the background from another bat file?
基本上,您使用/B
和/C
选项:
START /B CMD /C CALL "foo.bat" [args [...]] >NUL 2>&1