2013-07-04 9 views
35

私はPowerShellスクリプトを実行します。実行するこのスクリプトのディレクトリパスを取得するにはどうすればよいですか?実行するPowerShellスクリプトのディレクトリを取得するにはどうすればよいですか?

これを行う方法?

+0

あなたは、プロセスの現在の作業ディレクトリをしたいですか:PowerShellの2で

、自分$PSScriptRootの値を計算することができますか? – Bill

+0

いいえ、このスクリプトが含まれているディレクトリを知りたいと思います。 – user2131116

+0

ファイル名がわかっているなら、 'get-childItem'を使ってそのパスを見つけることができます。 http://stackoverflow.com/questions/8677628/recursive-file-search-using-powershell – Bill

答えて

109

のPowerShell 3は$PSScriptRootautomatic variableがあります

は、スクリプトが実行されて、そこからディレクトリが含まれています。

Windows PowerShell 2.0では、この変数はスクリプトモジュール(.psm1)でのみ有効です。 Windows PowerShell 3.0以降、すべてのスクリプトで有効です。

悪い言葉に惑わされてはいけません。 PSScriptRootは、現在のファイルのディレクトリです。

# PowerShell v2 
$PSScriptRoot = Split-Path -Parent -Path $MyInvocation.MyCommand.Definition 
+10

なぜ賛成投票ですか?私の答えを良くするのを助けてください。ご意見をお寄せください! –

+2

私はPowerShellの新機能ですが、$ MyInvocation.MyCommand.Definitionを拡張できますか?私は多くの記事でこれを見ると、それはプレースホルダーのように思えるが、何のために? – Sinaesthetic

+0

合意: 'MyCommand.Definition'はスクリプト名で入力または置換する必要がありますか?私はコマンドプロンプトで試したところ、これから何も得られませんでしたか? – monojohnny

関連する問題