2012-05-10 59 views
3

從PowerShell程序中,我可以「點源」另一個PowerShell程序。即我可以執行它,就好像它寫在第一個裏面一樣。
實施例:PowerShell腳本的點源代碼不以.ps1結尾

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

MyOtherProgram在「包括」主程序內,正如如果其含量過複製/粘貼。

的問題是:我只能點源文件名與.ps1
我不能MyOtherProgram.libMyOtherProgram.whatever

任何整理得點源未與.ps1結束PowerShell腳本的方法?

回答

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 
+0

+1,但awfull :) –

相關問題