Ожидание параллельных сценариев партии

У меня 4 пакетных файла. Я хочу запускать one.bat и two.bat сразу, одновременно. После завершения этих двух пакетных файлов, three.bat и four.bat должны запускаться одновременно, параллельно. Я пробовал много, но мот отлично работает.

Может ли кто-нибудь помочь мне в этом?

Это легко сделать с помощью упрощенной версии решения, которое я предусмотрел для параллельного выполнения процессов оболочки . Обратитесь к этому решению за объяснением того, как работает блокировка файлов.

 @echo off setlocal set "lock=%temp%\wait%random%.lock" :: Launch one and two asynchronously, with stream 9 redirected to a lock file. :: The lock file will remain locked until the script ends. start "" cmd /c 9>"%lock%1" one.bat start "" cmd /c 9>"%lock%2" two.bat :Wait for both scripts to finish (wait until lock files are no longer locked) 1>nul 2>nul ping /n 2 ::1 for %%N in (1 2) do ( ( rem ) 9>"%lock%%%N" || goto :Wait ) 2>nul ::delete the lock files del "%lock%*" :: Launch three and four asynchronously start "" cmd /c three.bat start "" cmd /c four.bat 

У меня была та же самая дилемма. Вот как я решил эту проблему. Я использовал команду Tasklist для контроля того, работает ли процесс еще или нет:

 :Loop tasklist /fi "IMAGENAME eq " /fi "Windowtitle eq "|findstr /i /C:"" >nul && ( timeout /t 3 GOTO :Loop ) echo one.bat has stopped pause 

Вам нужно будет настроить

, ,

значения в сценарии, чтобы он правильно фильтровал ваш процесс.

Надеюсь, это поможет.

Создайте файл master.bat, который запустит one.bat и two.bat. Когда one.bat и two.bat заканчиваются правильно, они эхо в файл, который они закончили

 if errorlevel 0 echo ok>c:\temp\OKONE if errorlevel 0 echo ok>c:\temp\OKTWO 

Затем master.bat ждет существования двух файлов

 del c:\temp\OKONE del c:\temp\OKTWO start one.bat start two.bat :waitloop if not exist c:\temp\OKONE ( sleep 5 goto waitloop ) if not exist c:\temp\OKTWO ( sleep 5 goto waitloop ) start three.bat start four.bat 

Другой способ – попробовать флаг / WAIT

 start /WAIT one.bat start /WAIT two.bat 

но у вас нет контроля над ошибками.

Вот несколько ссылок

http://malektips.com/xp_dos_0002.html

http://ss64.com/nt/sleep.html

http://ss64.com/nt/start.html

Interesting Posts

Браузеры перенаправляются на level3.com, если домен не существует

Запись одного CSV-файла с использованием spark-csv

Какое максимальное количество активаций Microsoft допускает для OEM-лицензии Windows 7?

objective камеры не работать с Samsung Galaxy S3

Как добавить bootstrap modal с link_to, чтобы содержимое ссылки открылось в модальном?

Таблица «только для чтения»

Настройка IIS Express для внешнего доступа к проекту VS2010

Выровнять линейный блок DIV вверху элемента контейнера

Как предотвратить VLC от автоматического изменения размера окна в соответствии с просмотренным разрешением контента?

@WebServlet аннотация с Tomcat 7

Удаление десериализации полиморфных classов json без информации о типе с использованием json.net

как получить доменное имя из URL-адреса

Получить размер каталога в «MB» с помощью командного файла

Как правило, рекомендуется использовать программное обеспечение для управления драйверами для обновления всех устаревших драйверов?

Поведение параметра «mapred.min.split.size» в HDFS

Давайте будем гением компьютера.