如何在不等待批处理文件的情况下启动应用程序?


156

有什么方法可以在不等待批处理文件的情况下执行应用程序?我已经尝试过该start命令,但是它只是创建了一个新的命令窗口。


3
注意-对于那些使用Windows批处理脚本执行涉及到的事情的人:如果进程Cstartcall-ed .bat文件B(随后又从A调用)中进行-ed ,并且CB完成后保持打开状态(例如C是一项服务或只是等待事情发生且在操作系统关闭之前没有固定终结点的某种服务),包含的父Acall可能无法按预期终止,除非进程C关闭,或者被杀。这是一个简单的示例:codepad.org/KLglXDnZ
SeldomNeedy 2015年

Answers:


306

我在这里猜测,但是您的start调用可能看起来像这样:

start "\Foo\Bar\Path with spaces in it\program.exe"

这将打开一个新的控制台窗口,使用“ \ Foo \ Bar \ Path,在它的\ program.exe中有空格”作为标题。

如果使用start(或需要)用引号引起来的东西,则需要将空引号作为第一个参数:

start "" "\Foo\Bar\Path with spaces in it\program.exe"

这是因为start将找到的第一个带引号的参数解释为新控制台窗口的窗口标题。


17
在实际路径前用双引号引起的大提示。我永远都不会猜到。感谢你的分享。
亚历山德鲁·迪库

谢谢它的帮助。我还使用了ss64.com/nt/start.html中
Ayusman

1
@Ayusman:这些选项仅适用于16位程序。我当然希望您还没有那些。
乔伊,

4
当然,它不必是空引号...您可以给它一个实际的相关标题。我强烈建议您这样做,因为这样会使其他看到它的人更加清楚。start "Obligatory Atavistic Window Title" "\Foo\Bar\Path with spaces in it\program.exe"
shiser 2014年

1
经过数小时的谷歌搜索,我终于找到了答案。谢谢!
Sellorio 2014年



4

如果start找不到所需的内容,它将按照您的描述进行。

由于您的操作应该可以正常工作,因此很可能您会省略一些引号(或添加其他内容)。


是的,我确实引用了两个引号。但是长路径名是必需的。该如何解决呢?
马克·阿特伍德
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.