Запустить скрипт powershell из скрипта powershell
У меня есть скрипт perl perl1.pl. В скрипте perl я вызываю скрипт powershell script1.ps1. В script.ps1 я вызываю другой скрипт наподобие script2.ps1 с локальными переменными в качестве параметров. Я подготовил скрипт powershell script3.ps1. Я хочу запустить script3.ps1 из script1.ps1 параллельно с script2.ps1. Мне нужно передать те же аргументы (локальные переменные, что и аргумент), с которыми работает sample_script2.ps1. Сначала необходимо вызвать script3, а затем script2.
Я пробовал powershel.exe как следует
C:..\powershell.exe -FilePath script3.ps1 $a,$b,$c
Я включил обход, политику выполнения.$ A $b $c являются локальными переменными. Но то, что, кажется, происходит, - это то, что командная строка открывается (как и наши сценарии), и начинает выполнять script1.ps1, а когда дело доходит до вышеупомянутая команда останавливается. Я набираю "exit" в приведенной выше командной строке и затем запускается script2.
Как я могу добиться того же, то есть параллельного запуска script3.ps1 с script2.ps1.
1 ответ
Я не слишком разбираюсь в PowerShell, но знаю, что вы можете запускать фоновые задания в PowerShell.
Когда командлет выполняется как фоновое задание, работа выполняется асинхронно в своем собственном потоке...
Командлет (command-let), который вы хотите использовать для создания фонового задания, Start-Job
,
Start-Job -FilePath c:\scripts\sample.ps1
Эта команда запускает сценарий Sample.ps1 в качестве фонового задания. Тогда вы можете использовать Receive-Job
получить отдачу от всех ваших работ.