我说,如果我有
我如何从一个批处理文件中异步地运行它们,也就是说,不等待前一个程序停止?
发布于 2009-09-19 18:37:19
使用START
命令运行每个程序应该可以获得所需的内容:
START "title" [/D path] [options] "command" [parameters]
除非使用/WAIT
开关执行,否则每个START
调用都会运行其参数中给出的命令并立即返回。
这适用于命令行应用程序。无论如何,没有命令行的应用程序都会立即返回,因此可以肯定的是,如果您想异步运行所有应用程序,请使用START
。
发布于 2012-06-02 00:35:09
结合前面的几个答案,您可以尝试start /b cmd /c foo.exe
。
举个简单的例子,如果你想打印出java/groovy/grails/gradle的版本,你可以在一个批处理文件中这样做:
@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进程(根据上面的命令)。输出将按它们完成的顺序打印到屏幕上。
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
发布于 2009-09-21 16:37:21
您可以使用start命令在不启动新窗口的情况下衍生后台进程:
start /b foo.exe
使用CTRL-C不能中断新进程;您只能使用CTRL-BREAK (或者通过关闭窗口,或者通过Task Manager)来终止它。
https://stackoverflow.com/questions/1449188
复制相似问题