start 1.bat
start 2.bat
start /wait 3.bat
start 4.bat
start 5.bat
start /wait 6.bat
И так далее. Это предполагает, что пакетный файл с коммутатором /wait
является самым длинным. Если это невозможно, вы можете использовать этот сценарий здесь:
@echo off
start bat1.bat
start bat2.bat
start bat3.bat
call waitForFinish
start bat4.bat
start bat5.bat
start bat6.bat
call waitForFinish
Goto:eof
:waitForFinish
set counter=0
for /f %%i in ('tasklist /NH /FI "Imagename eq cmd.exe') do set /a counter=counter+1
if counter GTR 2 Goto waitForFinish
После запуска 3 Batch-файлы, которые вы называете «функцию» waitForFinish
. Это проверяет, найдет ли он более 1 запущенного командного процесса (один используется для работающего пакетного файла, поэтому он всегда будет присутствовать, а еще одна строка выше вывода) и подсчитывает для каждого найденного окна.
Если этот счетчик больше 2, он будет делать то же самое снова и снова до той точки, где найден только запущенный файл пакетного файла только для процесса cmd.exe. Если это так, сценарий возвращается в верхнюю часть скрипта, чтобы начать следующие три.
Уже есть решения на SO. Вам нужно только Google для них. – jeb
Вам может быть интересно: [выполнять пакетные файлы параллельно и получать код выхода из каждого] (http://stackoverflow.com/a/41051895) ... – aschipfl
IMO, вопрос должен был быть закрыт как «слишком широкий», или «должен включать MCVE». – halfer