我有一个希望从 PowerShell 提示符交互使用的脚本。该脚本需要使用本地脚本模块。
我看不到如何导入/使用模块,这样它就不会在当前会话中加载。
例子
一个模块(MyModule.psm1)...
function Test-Method
{
write-host "Test-Method invoked"
}
...和一个脚本(script.ps1)
Import-Module .\MyModule
Test-Method
现在在 PowerShell 提示符下运行脚本...
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
我的脚本如何导入和使用 MyModule.psm1 而不会被加载到调用者的当前会话中?请记住,调用可能已经导入了模块并且不希望它被脚本卸载(因此在脚本完成时简单地删除模块并不够好)。
我考虑过对模块进行点源而不是导入它,但出于PowerShell Import-Module vs Dot Sourcing中所述的原因,我想要模块