【问题标题】:Start multiple console apps from a batch file从批处理文件启动多个控制台应用程序
【发布时间】:2012-02-27 22:48:32
【问题描述】:

我正在尝试从 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 秒)。这可能吗?

【问题讨论】:

    标签: batch-file console console-application


    【解决方案1】:

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

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

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

    例如,

    start dir
    

    将打开一个新的命令窗口并向您显示目录列表,完成后保持打开状态。

    :

    start cmd /c "ping 127.0.0.1 && exit"
    

    命令将打开一个新窗口,在 localhost 上运行四周期 ping 然后退出。

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

    【讨论】:

    • 谢谢,刚刚在stackoverflow.com/questions/324539/… 中也发现了这个。关于批处理文件中的动态加载有什么想法吗?
    • START 命令将第一个参数解释为窗口标题,如果它被引用,所以你需要指定一个标题,如start "" "C:\Development\App\bin\Debug1\Application.exe"
    【解决方案2】:
    @echo off
    for %%F in ("Debug\Applications\*.exe") do (
      start "" "%%F"
      timeout 5
    )
    

    【讨论】:

    • 感谢这有很大帮助。我已将接受的答案提供给其他用户,因为它回答了我的第一个问题,所以我能做的最好的就是投票。
    猜你喜欢
    • 1970-01-01
    • 2014-05-14
    • 2013-08-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多