PowerShell komut isteminden etkileşimli olarak kullanmak istediğim bir komut dosyası var. Senaryonun yerel bir betik modülü kullanması gerekiyor.Bir komut dosyasındaki bir PowerShell modülünü, kullanıcının oturumuna yüklenen modülden ayrılmadan nasıl kullanabilirim?
Geçerli oturumda bırakılmadığı şekilde modülün nasıl alınacağını/kullanılacağını göremiyorum.
Örnek
bir modül (MyModule.psm1) ...
function Test-Method
{
write-host "Test-Method invoked"
}
... ve bir komut dosyası (script.ps1)
Import-Module .\MyModule
Test-Method
Şimdi komut dosyası çalıştıran PowerShell komut isteminde ...
PS C:\temp> Get-Module | % {$_.Name}
Microsoft.PowerShell.Management
Microsoft.PowerShell.Utility
PS C:\temp> .\script.ps1
Test-Method invoked
PS C:\temp> Get-Module | % {$_.Name}
Microsoft.PowerShell.Management
Microsoft.PowerShell.Utility
MyModule
Komut dizim, arayanın geçerli oturumuna bırakılmadan MyModule.psm1 dosyasını nasıl içe aktarabilir ve kullanabilir? Çağrının halihazırda modülü ithal etmiş olabileceğini ve komut dosyası tarafından yüklenmesini istemeyebileceğini akılda tutarak (bu nedenle, sadece komut dosyasının tamamlanmasından sonra modülün kaldırılması yeterince iyi değildir).
Ben ettik nokta kaynak modülü yerine aktarmadan ama Bildiğim kadarıyla söyleyebilirim PowerShell Import-Module vs Dot Sourcing
Bu, az ya da çok nereye gidecektim. Bana göre, bir şey eksik olduğundan emin olmak için PowerShell'i (geleneksel) bir kabuk olarak kullanmak hiç de iyi değil. –
"ipmo" ne anlama geliyor? Bunu hiç görmedim ve Google çok fazla yardım etmiyor. – jpmc26
@ jpmc26 'ipmo', 'Import-Module' için bir takma addır. –