如何在批处理文件中使用启动命令?

Posted

技术标签:

【中文标题】如何在批处理文件中使用启动命令?【英文标题】:How to use the start command in a batch file? 【发布时间】:2013-06-16 14:14:54 【问题描述】:

我有一个批处理文件,它使用大量命令行参数启动应用程序:

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

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

我该如何解决这个问题?

【问题讨论】:

如何启动批处理文件?您是否从命令提示符调用它? @jimbojw 不,只需双击文件。 看看 - ss64.com/nt/start.html. 【参考方案1】:

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

start "" "C:\Program...

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

【讨论】:

【参考方案2】:

我认为 *** 的其他答案可以解决您的问题: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

【讨论】:

那个问题是异步调用其他批处理文件。不幸的是,它并没有解决我的具体问题。

以上是关于如何在批处理文件中使用启动命令?的主要内容,如果未能解决你的问题,请参考以下文章

在 Windows 7 的批处理文件中使用启动命令后,“没有足够的存储空间来处理此命令”

如何将程序添加到系统服务实现开机自启动

如何将程序添加到系统服务实现开机自启动

使用命令提示符/终端启动 Java 可执行文件 - 批处理/Shell/命令文件

如何使用一个命令一次启动多个Windows服务?

为啥在 FreeCommander 中双击启动批处理文件时 CMD 找不到 wsl 命令?