У меня есть серия из 15 пакетных файлов, которые мне нужно запустить как часть сценария powershell.В настоящее время у меня есть рабочая версия этого, но я выполняю каждый пакетный файл, как показано ниже:
Start-Process -FilePath "Script1.bat" -WorkingDirectory "C:\Root" -Wait
Start-Process -FilePath "Script2.bat" -WorkingDirectory "C:\Root" -Wait
Start-Process -FilePath "Script3.bat" -WorkingDirectory "C:\Root" -Wait
и т. Д.
Пакетные файлы объединяют тысячи сценариев SQL в один большой сценарийи некоторые из них намного медленнее других (SQL заполняет 5 разных баз данных, а 1 намного больше, чем другие 4)
Я пытаюсь повысить скорость выполнения 15 сценариев, и яЯ подумал, что хорошей идеей будет запускать пакетные файлы параллельно, чтобы все файлы SQL создавались одновременно, а не последовательно.Для этого я удалил «-Wait» и вижу, что все окна командной строки открываются одновременно.
Проблема, с которой я столкнулся, заключается в том, что после создания файлов SQL я используюCopy-Item для перемещения скриптов в нужное место.Поскольку команды Copy-Item больше не ждут выполнения пакетных файлов, они пытаются скопировать файлы SQL из папки, в которой они созданы, до того, как пакетные файлы закончили их создавать.
Так что в основном я 'Я пытаюсь найти способ «Подождать» запуска коллекции пакетных файлов, чтобы я мог убедиться, что пакетные файлы завершены, прежде чем я начну копировать файлы.Я смотрел онлайн целую вечность и пытался использовать powershell Jobs с командой «Wait-Job», но ожидание ждет только до тех пор, пока не будет выполнен каждый пакетный файл, а не до тех пор, пока они не будут завершены.У кого-нибудь есть идеи о том, как этого можно достичь?