У меня есть два файла PowerShell. a.ps1 и b.ps1.
В центральной точке a.ps1 я хочу начать выполнение кода в b.ps1 и завершить сценарий a.ps1.
Как это сделать, учитывая, что оба файла находятся в одной папке?
powershell
window
GibboK
источник
источник
Ответы:
Это нормально, если b.ps1 выполняется в новом процессе Power Shell? Если так, то следующее должно делать то, что вы описываете.
Invoke-Expression выполняется в том же процессе, но ожидает завершения b.ps1.
источник
В a.ps1,
как вы вызываете другие программы
источник
я получил это из другой статьи, но это может применяться здесь: спасибо ( /programming//users/3905079/briantist )
Во-первых, если вы хотите сделать несколько вызовов в одном сеансе на удаленном компьютере, сначала создайте сеанс PSSession:
Затем используйте этот сеанс во всех последующих вызовах:
} Затем закройте сеанс, когда вы закончите:
также, если вы точно не знаете, будет ли этот скрипт, но знаете, с чего начинается ваш скрипт, вы можете сделать это:
(это мое)
источник
Используйте волшебную переменную $ PSScriptRoot для ссылки на ваш текущий каталог. Затем вызовите скрипт B с амперсандом («Оператор вызова»):
Если вы хотите сохранить переменные из B в области A, вы можете запустить скрипт, используя оператор поиска точек:
источник