HIRO's.NET
PowerShell Tips
HIRO's.NETは http://hiros-dot.net へ引っ越しました。
このページの新しいURLは http://hiros-dot.net/PowerShell/directory/directory09.htm です。
ブックマークされている方はお手数ですが http://hiros-dot.net へ修正お願いいたします。


HOME > PowerShell Tips > ディレクトリ操作 Tips メニュー
UPDATE:2008/02/15

09.ルートディレクトリを取得する

現在の作業場所のルートディレクトリを取得するには Get-Locationコマンドレットを使用します。

書式は
(Get-Location).Drive.Root
です。

List1ではカレントディレクトリが C:\Work で実行しているので、ルートディレクトリとして C:\ を返します。

List1

PS C:\Work3> (Get-Location).Drive.Root
C:\

今度は、任意のパス文字列からルートディレクトリを取得してみたいと思います。

残念ながら、既存のコマンドレットの機能で取得する方法は思いつきませんでしたので、.NET Frameworkを使用した例を紹介します。

まず最初にSystem.IO.DirectoryをLoadします。(List1)

List2

PS C:\Work> [reflection.assembly]::LoadWithPartialName("System.IO")

つぎに、System.IO.DirectoryのGetDirectoryRootメソッドを使用して、ルートディレクトリを取得します。

書式
[System.IO.Directory]::GetDirectoryRoot(パス文字列)
です。

List3では、"C:\Work"のルートディレクトリと"F:\Work"のルートディレクトリを取得しています。

GetDirectoryRootメソッドでは、パス文字列で指定したパスは、実際に存在する必要はありません。
架空のパスでも実行することができるため、場合によっては存在するパスかどうかを確認する処理を含める必要があります。(この場合にはTest-Pathコマンドレットが有効です)

List3

PS C:\Work> [System.IO.Directory]::GetDirectoryRoot("C:\Work")
C:\
PS C:\Work> [System.IO.Directory]::GetDirectoryRoot("F:\Work")
F:\


SEO 仕事 掲示板 レンタルサーバー プロフ SEO