从PowerShell程序,我可以"点源"另一个PowerShell程序。即我可以执行它,就像它写在第一个内部一样 示例:
Write-Host 'before'
. MyOtherProgram.ps1
Write-Host 'after'
包含'中的MyOtherProgram在主程序中,就像它的内容已被复制/粘贴一样。
问题是:我只能点源一个以.ps1
结束的文件名
我无法使用MyOtherProgram.lib
或MyOtherProgram.whatever
任何人都有一种点源PowerShell脚本的方法,而不是以.ps1
结尾?
答案 0 :(得分:6)
另一种方法是使用Invoke-Expression
:
$code = Get-Content ./MyOtherProgram.lib | Out-String
Invoke-Expression $code
答案 1 :(得分:1)
我不知道这是编译成PowerShell还是可以配置,但是一种方法就是让你的脚本暂时重命名,导入它然后重命名。
Rename-Item C:\Path\MyScript.whatever C:\Path\MyScript.ps1
. C:\Path\MyScript.ps1
Rename-Item C:\Path\MyScript.ps1 C:\Path\MyScript.whatever