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


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

11.論理ドライブを取得する

論理ドライブを取得するには Get-PSDriveコマンドレットを使用します。
ただし、Get-PSDriveコマンドレットを単独で実行すると、List1のような結果となり、PowerShellでドライブとして扱っているものの一覧が表示されてしまいます。

List1

PS C:\Work> Get-PSDrive

Name Provider Root
---- -------- ----
A FileSystem A:\
Alias Alias
C FileSystem C:\
cert Certificate \
D FileSystem D:\
E FileSystem E:\
Env Environment
F FileSystem F:\
Function Function
G FileSystem G:\
HKCU Registry HKEY_CURRENT_USER
HKLM Registry HKEY_LOCAL_MACHINE
S FileSystem S:\
T FileSystem T:\
U FileSystem U:\
V FileSystem V:\
Variable Variable
W FileSystem W:\
X FileSystem X:\
Y FileSystem Y:\
Z FileSystem Z:\

そこで、Where-Objectコマンドレットを使用して、論理ドライブだけを取得したいと思います。
論理ドライブは Providerが"FileSystem"のものだけを抜き出せば良いので、

書式は
Get-PSDrive | Where { $_.Provider -match "FileSystem"}
となります。

これを実行すると
List2のようにGet-PSDriveコマンドレットの実行結果から、論理ドライブを取得することができます。

List2

PS C:\Work> Get-PSDrive | Where { $_.Provider -match "FileSystem"}

Name Provider Root
---- -------- ----
A FileSystem A:\
C FileSystem C:\
D FileSystem D:\
E FileSystem E:\
F FileSystem F:\
G FileSystem G:\
S FileSystem S:\
T FileSystem T:\
U FileSystem U:\
V FileSystem V:\
W FileSystem W:\
X FileSystem X:\
Y FileSystem Y:\
Z FileSystem Z:\