Запуск нескольких консольных приложений из пакетного файла

Я пытаюсь запустить некоторые консольные приложения .exe файлы из пакетного файла в Windows.

Однако, когда я запускаю следующий код, он запускает только первое из приложений:

"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

(я включил тайм-аут, чтобы немного рассчитать внутреннюю обработку)

Есть ли способ получить файл script для запуска первого приложения, а затем перейти и запустить остальные?

В идеале я хотел бы, чтобы файл script запускал все приложения в подкаталоге, так что если бы у меня было Debug\Applications\*.exe или подобное, оно запустило бы все приложения типа .exe(и, возможно, ожидало бы 5 секунд между ними). Возможно ли это?

Ответ 1

Вы можете запускать приложения в фоновом режиме с помощью start:

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

Используйте start /? в окне команд, чтобы получить дополнительные сведения.

Например,

start dir

откроет новое командное окно и покажет вам список каталогов, оставив его открытым при завершении.

:

start cmd /c "ping 127.0.0.1 && exit"
Команда

откроет новое окно, запустит четырехтактный пинг на локальном хосте, а затем выйдет.

В обоих случаях текущее окно будет немедленно ждать следующей команды.

Ответ 2

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