открывать несколько программ последовательно с помощью cmd - PullRequest
1 голос
/ 10 октября 2011

У меня есть последовательность из 3 программ, которые должны запускаться одна за другой. Я нашел в Интернете нечто подобное, что я и хочу сделать:

start /wait /b First.exe
start /wait /b Second.exe
start /wait /b Third.exe

Моя проблема в том, что у меня 1000 последовательностей для запуска ... Итак, я попробовал

start "exemple" "start /wait /b First.exe
start /wait /b Second.exe
start /wait /b Third.exe"
start "exemple2" "start /wait /b First.exe
start /wait /b Second.exe
start /wait /b Third.exe"

Я тоже пробовал

start /b First1.exe
start /wait /b Second1.exe
start /wait /b Third1.exe

start /b First2.exe
start /wait /b Second2.exe
start /wait /b Third2.exe

Это тоже не работает ... Поэтому я не знаю, как это сделать.

есть идеи? спасибо:)

[РЕДАКТИРОВАТЬ]

Давайте попробуем прояснить ситуацию

start "exemple" "start /wait /b First.exe
start /wait /b Second.exe
start /wait /b Third.exe"
start "exemple2" "start /wait /b First.exe
start /wait /b Second.exe
start /wait /b Third.exe"

Это не удалось, потому что 2-й запуск не распознается, он говорит, что Windows не может найти 'start / wait / b First.exe'

start /b First1.exe
start /wait /b Second1.exe
start /wait /b Third1.exe

start /b First2.exe
start /wait /b Second2.exe
start /wait /b Third2.exe

Это не удалось, потому что заказ First1.exe и Second1.exe запущены. Затем компьютер ждет окончания Second1.exe, чтобы запустить First2.exe и Second2.exe ...

Я хотел бы заказать Компьютер запускает First1.exe & First2.exe Second1.exe запускается, когда First1.exe завершается, и Second2.exe запускается, когда First2.exe завершается.

Я бы не хотел использовать один .cmd для каждого выполнения (это было бы моим решением для сбоя).

Хотел бы я быть более ясным на этот раз!

Ответы [ 3 ]

2 голосов
/ 10 октября 2011

Вы все еще ожидаете в главном командном файле. Вы хотите, чтобы первая / вторая / третья последовательность были независимыми для каждого цикла. Вы хотите, чтобы каждый цикл имел свой собственный /wait.

start "exempel" cmd /c start /wait First.exe ^& start /wait Second.exe ^& start /wait Third.exe

Думайте об этом как о предоставлении инструкций команде помощников. Вы хотите, чтобы каждый помощник «ждал Первого, затем ждал Второго, затем ждал Третьего».

2 голосов
/ 11 октября 2011

Вам потребуется один экземпляр cmd.exe для каждой последовательности в дополнение к основному экземпляру.Операционная система не имеет встроенной поддержки процессов последовательности, а cmd.exe не поддерживает многопоточность в командных файлах.

Вы можете сделать это так:

 start "sequence1" cmd /c "First.exe & Second.exe & Third.exe"
 start "sequence2" cmd /c "First.exe & Second.exe & Third.exe"
 start "sequence3" cmd /c "First.exe & Second.exe & Third.exe"
 ...

ЕдинственноеЧтобы избежать (довольно скромных) накладных расходов на дополнительные экземпляры cmd.exe, можно написать решение на реальном языке программирования, а не в виде пакетного файла.

Возможно, вы также захотите подумать, является ли этоочень хочу, чтобы ты хотел сделать.Windows обычно не очень хорошо работает, когда одновременно работают сотни процессов.

0 голосов
/ 10 октября 2011

как насчет добавления вызовов в один файл .CMD и последующего их выполнения при запуске?

@echo off
program1.exe
program2.exe
program3.exe

Чтобы проверить, все ли в порядке, вы можете проверить код возврата каждой отдельной программы в .BAT/.CMD (моя память постоянно говорит мне% ERRORLEVEL%, но я не уверен в этом :()

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...