2012-05-10 11 views
3

PowerShellプログラムから、別のPowerShellプログラムを「ソース」にすることができます。つまり、最初のものの中に書かれているかのように実行することができます。
例:ドットが.ps1で終わらないPowerShellスクリプトを調達する

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

MyOtherProgram正確にその内容がコピー/貼り付けされていたかのように、メインプログラム内の「含ま」インチ

問題がある:私は私がMyOtherProgram.libまたはMyOtherProgram.whatever

で誰でも.ps1で終わらないPowerShellスクリプトを調達ドットにメソッドを持つことができない.ps1
で終わるファイル名を調達ドットことができますか?

答えて

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 :) –

関連する問題