首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >异步运行Windows批处理文件命令

异步运行Windows批处理文件命令
EN

Stack Overflow用户
提问于 2009-09-19 18:34:55
回答 7查看 294K关注 0票数 205

我说,如果我有

  • foo.exe
  • bar.exe
  • baz.exe

我如何从一个批处理文件中异步地运行它们,也就是说,不等待前一个程序停止?

EN

回答 7

Stack Overflow用户

回答已采纳

发布于 2009-09-19 18:37:19

使用START命令运行每个程序应该可以获得所需的内容:

代码语言:javascript
复制
START "title" [/D path] [options] "command" [parameters]

除非使用/WAIT开关执行,否则每个START调用都会运行其参数中给出的命令并立即返回。

这适用于命令行应用程序。无论如何,没有命令行的应用程序都会立即返回,因此可以肯定的是,如果您想异步运行所有应用程序,请使用START

票数 273
EN

Stack Overflow用户

发布于 2012-06-02 00:35:09

结合前面的几个答案,您可以尝试start /b cmd /c foo.exe

举个简单的例子,如果你想打印出java/groovy/grails/gradle的版本,你可以在一个批处理文件中这样做:

代码语言:javascript
复制
@start /b cmd /c java -version
@start /b cmd /c gradle -version
@start /b cmd /c groovy -version
@start /b cmd /c grails -version

如果您有类似于Process Explorer (Sysinternals)的东西,您将看到一些子cmd.exe进程,每个子java进程都有一个java进程(根据上面的命令)。输出将按它们完成的顺序打印到屏幕上。

代码语言:javascript
复制
start /b :  Start application without creating a new window. The
             application has ^C handling ignored. Unless the application
             enables ^C processing, ^Break is the only way to interrupt
             the application

cmd /c : Carries out the command specified by string and then terminates
票数 69
EN

Stack Overflow用户

发布于 2009-09-21 16:37:21

您可以使用start命令在不启动新窗口的情况下衍生后台进程:

start /b foo.exe

使用CTRL-C不能中断新进程;您只能使用CTRL-BREAK (或者通过关闭窗口,或者通过Task Manager)来终止它。

票数 38
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1449188

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档