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:找不到驱动器。名为“@{deviceid=C”的驱动器不存在。在 line:1 char:60
+ Get-WmiObject -class Win32_logicaldisk | 选择设备ID | Get-ChildItem -path { ...
+ ~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : ObjectNotFound: (@{deviceid=C:String) [Get-ChildItem] , DriveNotFoundException
+ FullyQualifiedErrorId : DriveNotFound,Microsoft.PowerShell.Commands.GetChildItemCommand

Get-ChildItem -path 接受管道输入,我们如何解决这个问题?

4

2 回答 2

3

Select正在返回一个具有名为 DeviceID 的属性的对象。

用于-ExpandProperty获取属性值,然后通过管道传递:

Get-WmiObject -class Win32_logicaldisk | select -expandproperty deviceid | Get-ChildItem -path {$_}
于 2016-04-04T22:17:33.210 回答
2

您也可以只选择返回的对象中的属性。在这种情况下,$_.DeviceID

Get-WmiObject -class Win32_logicaldisk | select deviceid | Get-ChildItem -path {$_.DeviceID}
于 2016-04-05T06:22:55.350 回答