Yanıtlar:
Yeni bir Power Shell işleminde b.ps1 yürütülürse sorun olmaz mı? Eğer öyleyse aşağıdakiler tarif ettiğiniz şeyi yapmalıdır.
Invoke-Item (start powershell ((Split-Path $MyInvocation.InvocationName) + "\b.ps1"))
"Invoke-Expression" aynı işlemde yürütülür, ancak b.ps1 öğesinin sonlandırılmasını bekler.
A.ps1'de,
& .\b.ps1
diğer programları başlatma şekliniz
Farklı bir makaleden aldım ama burada uygulanabilir: teşekkürler ( /programming//users/3905079/briantist )
İlk olarak, uzaktaki bir makineye tek bir oturumda birden fazla çağrı yapmak istiyorsanız, önce bir PSSession oluşturun:
$session = New-PSSession -ComputerName $ComputerName
Ardından, sonraki tüm aramalarda bu oturumu kullanın:
Invoke-Command -Session $session -File $filename
Invoke-Command -Session $session -ScriptBlock {
# Some code
} Ardından işiniz bittiğinde oturumu kapatın:
Remove-PSSession -Session $session
Ayrıca tam olarak bu komut dosyası olacak eşya bilmiyorsanız ama betiğinizi biliyorum whare başlar u bunu yapabilirsiniz:
$strInst = Get-ChildItem -Path $PSScriptRoot -Filter Import-Carbon.ps1 -recurse -ErrorAction SilentlyContinue -Force | Select Directory
Invoke-Experssion (start Powershell ($strinst\Import-Carbon.ps1)
(bu benim)
Geçerli dizininize başvurmak için $ PSScriptRoot sihirli değişkenini kullanın. Sonra ve işareti B komut dosyasını çağırın ("Çağrı operatörü"):
$script = $PSScriptRoot+"\b.ps1"
& $script
B'deki değişkenleri A kapsamında tutmak istiyorsanız, Dot kaynak operatörünü kullanarak komut dosyasını çalıştırabilirsiniz:
$script = $PSScriptRoot+"\b.ps1"
. $script