У меня есть два файла PowerShell. a.ps1 и b.ps1.
в центральной точке a.ps1 я хочу начать выполнение кода в b.ps1 и завершить.ps1 скрипт.
Как это сделать, учитывая, что оба файла находятся в одной папке?
У меня есть два файла PowerShell. a.ps1 и b.ps1.
в центральной точке a.ps1 я хочу начать выполнение кода в b.ps1 и завершить.ps1 скрипт.
Как это сделать, учитывая, что оба файла находятся в одной папке?
это нормально, если б.пс1 выполнен в новый процесс оболочки мощность? Если да, то следующее должно делать то, что вы описываете.
Invoke-Item (start powershell ((Split-Path $MyInvocation.InvocationName) + "\b.ps1"))
"Invoke-Expression" выполняется в том же процессе, но ожидает завершения b.ps1.
в.пс1,
& .\b.ps1
способ вызова других программ
Я получил это из другой статьи, но ее можно подать здесь: спасибо (https://stackoverflow.com/users/3905079/briantist)
во-первых, если вы хотите сделать несколько вызовов за один сеанс на удаленную машину, сначала создайте сеанс PSSession:
$session = New-PSSession -ComputerName $ComputerName
затем используйте этот сеанс во всех последующих вызовах:
Invoke-Command -Session $session -File $filename
Invoke-Command -Session $session -ScriptBlock {
# Some code
} Затем закройте сеанс, когда закончите:
Remove-PSSession -Session $session
кроме того, если вы не знаете точно, изделий, что сценарий будет но знайте, что ваш сценарий начинается и может сделать это:
$strInst = Get-ChildItem -Path $PSScriptRoot -Filter Import-Carbon.ps1 -recurse -ErrorAction SilentlyContinue -Force | Select Directory
Invoke-Experssion (start Powershell ($strinst\Import-Carbon.ps1)
(помоему так)
Постоянная ссылка на данную страницу: [ Скопировать ссылку | Сгенерировать QR-код ]