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

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

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

    3 Solutions collect form web for “Ожидание параллельных сценариев партии”

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

     @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

    Изменить целевой код C # DllImport в зависимости от x64 / x86

    Android-эмулятор спама logcat с «Service com.android.exchange.ExchangeService просочился ServiceConnection …, который был первоначально связан здесь

    Как создать подписанный файл APK с использованием интерфейса командной строки Cordova?

    Избегайте корпоративных заблокированных URL-адресов, когда в Cisco VPN

    Создание переменных с именами из строк

    Что такое прошивка и что происходит, когда я обновляю ее?

    Как работают записи DNS-сервера домена поставщика?

    как исправить проблему «Command / bin / sh failed with exit code 1» в iphone

    WPF: кнопка с одним щелчком мыши + двойной щелчок

    Установка Windows 8 с использованием ISO из XP

    Когда кабели Ethernet должны быть экранированы?

    Хорошее (желательно бесплатное), простое в использовании, привлекательное программное обеспечение блок-схемы

    Что означает ключевое слово ограничения в C ++?

    Почему / когда __declspec (dllimport) не требуется?

    ManagedProperty в CDI @Named bean возвращает null

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