BIPUL RANJAN Ответов: 2

Этот вопрос для пакетного файла windows, где я пытаюсь запустить несколько пакетных файлов из главного файла


У меня есть специальное требование, когда я пытаюсь запустить дочерние файлы bat из главного файла bat. Но есть несколько проблем, с которыми я сталкиваюсь.
1. Мастер не ждет завершения дочернего файла и завершает работу, не дожидаясь завершения дочернего файла. А это значит, что я не могу запланировать его как работу.
2. Когда я выполняю параллельное выполнение внутри главного файла, он не переходит к следующей строке выполнения.
Я публикую сценарий высокого уровня, пожалуйста, дайте мне знать, как правильно это сделать.


родитель а (не заканчивайте, пока все дети и внуки не закончат)
----------- >параллельный ребенок 1
---------------------- >внук а
---------------------- >внук б
--------------------------------- >параллельный правнук b1
--------------------------------- >параллельный правнук b2
---------------------- >внук с (не начинайте это до тех пор, пока оба правнука В1 и правнук В2 не закончат)
---------------------- >внук d
--------------------------------- >параллельный правнук d1
--------------------------------- >параллельный правнук d2
----------- > параллельный ребенок 2
---------------------- >внук d
---------------------- >внук е
--------------------------------- и GT;параллельные правнуки Е1
--------------------------------- и GT;параллельные правнуки Е2
---------------------- >внук f (не начинайте это до тех пор, пока оба правнука e1 и правнук e2 не закончат)
---------------------- >внук г
--------------------------------- >параллельный правнук g1
--------------------------------- >параллельный правнук g2

Любая помощь будет оценена по достоинству.

Что я уже пробовал:

Я пробовал параллельное выполнение с использованием Start и normal series execution, но в данном случае это не работает для меня.

2 Ответов

Рейтинг:
2

BIPUL RANJAN

Привет Дэйв,

я добавляю для вас справочный код.

Код для главного файла:-
начало "C:\Test\Parallel_batch_process\chlidA.bat"
начало "C:\Test\Parallel_batch_process\chlidB.bat"

Ребенкаа:-

запуск "test1" cmd.exe /C ^(ping server1-n 2 ^> C:\Test\Parallel_batch_process\Test1.txt^)
запуск "test2" cmd.exe /C ^(ping server2-n 2 ^> C:\Test\Parallel_batch_process\Test2.txt^)


ChildB:-
запуск "test1" cmd.exe /C ^(ping Server3-n 5 ^> C:\Test\Parallel_batch_process\Test3.txt^)
запуск "test2" cmd.exe /C ^(ping Server4-n 2 ^> C:\Test\Parallel_batch_process\Test4.txt^)

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


Richard MacCutchan

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

Рейтинг:
1

Dave Kreskowiak

Я понятия не имею, как вы запускаете другие пакетные файлы, потому что вы не показываете код, но вы всегда можете использовать START /WAIT batchFile parameters чтобы запустить его и дождаться завершения.