从批处理文件中启动多个控制台应用程序

17
我想在Windows中从批处理文件中运行一些控制台应用程序.exe文件。但是,当我运行以下代码时,它只启动第一个应用程序:
"C:\Development\App\bin\Debug1\Application.exe"
timeout 5
"C:\Development\App\bin\Debug2\Application.exe"
timeout 5
"C:\Development\App\bin\Debug3\Application.exe"
timeout 5
"C:\Development\App\bin\Debug4\Application.exe"
timeout 5
"C:\Development\App\bin\Debug5\Application.exe"
timeout 5

(我包含了超时时间以稍微延迟初始处理)

有没有一种方法可以让脚本文件启动第一个应用程序,然后继续启动其他应用程序?

理想情况下,我希望脚本文件可以启动子目录中的所有应用程序,这样如果我有 Debug\Applications\*.exe 或类似的东西,它会启动所有类型为 .exe 的应用程序(并可能在每个应用程序之间等待 5 秒)。这可行吗?

2个回答

30

您可以使用start在后台启动应用程序:

start "C:\Development\App\bin\Debug1\Application.exe"

使用命令行窗口中的start /?获取更多详细信息。

例如:

start dir

执行该命令将会打开一个新的命令行窗口,并显示一个目录列表,等待操作完成后保持该窗口处于打开状态。

以下是:

start cmd /c "ping 127.0.0.1 && exit"

该命令将会打开一个新窗口,在本地主机上运行四个周期的ping测试,然后退出。

在两种情况下,当前窗口都将立即等待下一条命令。


谢谢,我刚在https://dev59.com/fnRC5IYBdhLWcg3wW_pk看到了这个。有没有关于批处理文件中动态加载的想法? - finoutlook
START 命令会将第一个参数解释为窗口标题,如果它被引用,因此您需要像这样指定一个标题:start "" "C:\Development\App\bin\Debug1\Application.exe" - dbenham

8
@echo off
for %%F in ("Debug\Applications\*.exe") do (
  start "" "%%F"
  timeout 5
)

谢谢,这帮了我很多。我已经把采纳答案给了其他用户,因为它回答了我最初的问题,所以我能做的最好就是点个赞。 - finoutlook

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接