2016-04-04 27 views
1

C:ドライブのファイルをリストしたいとします。まず、論理ディスクwmiオブジェクトからデバイスIDを取得し、それをリストしたいとします。パイプライン入力/出力

コマンドが返すの下

Get-WmiObject -class Win32_logicaldisk 


DeviceID  : C: 
DriveType : 3 
ProviderName : 
FreeSpace : 940371968 
Size   : 125809192960 
VolumeName : 

しかし、このコマンド:

Get-WmiObject -class Win32_logicaldisk | select deviceid | Get-ChildItem -path {$_} 

は、エラーの下に与える:

Get-ChildItem : Cannot find drive. A drive with the name '@{deviceid=C' does not exist. At line:1 char:60
+ Get-WmiObject -class Win32_logicaldisk | select deviceid | Get-ChildItem -path { ...
+ ~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : ObjectNotFound: (@{deviceid=C:String) [Get-ChildItem], DriveNotFoundException
+ FullyQualifiedErrorId : DriveNotFound,Microsoft.PowerShell.Commands.GetChildItemCommand

のGet-ChildItemコマンドレット-pathは、パイプライン入力を受け付け、どうやって 私たちはこれを解決できますか?

答えて

3

Selectは、DeviceIDという名前のプロパティを持つオブジェクトを返しています。

使用-ExpandPropertyパイプ、その後、プロパティ値を取得する:あなたはまた、単に返されるオブジェクトのプロパティを選択することができ

Get-WmiObject -class Win32_logicaldisk | select -expandproperty deviceid | Get-ChildItem -path {$_} 
2

。この場合、$_.DeviceID

Get-WmiObject -class Win32_logicaldisk | select deviceid | Get-ChildItem -path {$_.DeviceID} 
関連する問題