2012-02-06 2 views
10

Я пытаюсь запустить некоторые консольные приложения .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 

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

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

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

ответ

22

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

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

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

Например,

start dir 

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

The:

start cmd /c "ping 127.0.0.1 && exit" 

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

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

+0

Спасибо, только что это упоминается в http://stackoverflow.com/questions/324539/how-can-i-run-a-program-from-a-batch-file-without-having-the -console-open-after тоже. Любые идеи о динамической загрузке в пакетном файле? – finoutlook

+0

Команда START интерпретирует первый аргумент как заголовок окна, если он цитируется, поэтому вам нужно указать заголовок типа 'start "" C: \ Development \ App \ bin \ Debug1 \ Application.exe "' – dbenham

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

Спасибо, это помогло много. Я дал принятый ответ другому пользователю, так как он ответил на первый вопрос, который у меня был, поэтому лучше всего я могу это сделать. – finoutlook

Смежные вопросы