2012-01-13 6 views
2

ディレクトリc:\scripts\に次のスクリプトがあります。PowershellコンソールとISEの両方のスクリプトディレクトリからファイルを取得しますか?

# . c:\scripts\anotherScript.ps1 
function GetScriptRoot { Split-Path $script:MyInvocation.MyCommand.Path } 
. "$(GetScriptroot)\anotherScript.ps1" 

ただし、ISEでエラーが発生します。コンソールとISEの両方で動作する方法ですか?私は完全な絶対パスを使用しないようにしています。

答えて

2

$ MyInvocation.MyCommand.Pathプロパティは、実行中のスクリプトでのみ使用できます。多分、私が使用していた、

PS C:\Users\andy> $host 
Name    : Windows PowerShell ISE Host 

PS C:\Users\andy> $host 
Name    : ConsoleHost 
+0

OK:

if ($psise) { "Running in the ISE" } else { "Not running in the ISE" } 

それとも$host.Nameプロパティを見て:あなたは、あなたが$psise変数を確認することができISEで実行したりしていないかどうかを検出する

ISEのフルパス。スクリプトを検出する方法はISE /コンソールで実行されていますか? – ca9163d9

+0

@NickW私の更新された答えでどのようにチェックアウト。 –