Dot采购不以.ps1结尾的PowerShell脚本

时间:2012-05-10 21:14:01

标签: powershell

从PowerShell程序,我可以"点源"另一个PowerShell程序。即我可以执行它,就像它写在第一个内部一样 示例:

Write-Host 'before'
. MyOtherProgram.ps1
Write-Host 'after'

包含'中的MyOtherProgram在主程序中,就像它的内容已被复制/粘贴一样。

问题是:我只能点源一个以.ps1结束的文件名 我无法使用MyOtherProgram.libMyOtherProgram.whatever

任何人都有一种点源PowerShell脚本的方法,而不是以.ps1结尾?

2 个答案:

答案 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