管道 Input/Output
Pipeline Input/Output
我想列出C:盘的文件。首先,我想从逻辑磁盘wmi对象中获取设备ID,并列出它。
下面的命令returns:
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 接受管道输入,我们如何解决这个问题?
您的 Select
正在返回一个具有 属性 名为 DeviceID 的对象。
使用 -ExpandProperty
获取 属性 值,然后通过管道传输:
Get-WmiObject -class Win32_logicaldisk | select -expandproperty deviceid | Get-ChildItem -path {$_}
您也可以只 select 返回对象中的 属性。在这种情况下,$_.DeviceID
Get-WmiObject -class Win32_logicaldisk | select deviceid | Get-ChildItem -path {$_.DeviceID}
我想列出C:盘的文件。首先,我想从逻辑磁盘wmi对象中获取设备ID,并列出它。
下面的命令returns:
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 接受管道输入,我们如何解决这个问题?
您的 Select
正在返回一个具有 属性 名为 DeviceID 的对象。
使用 -ExpandProperty
获取 属性 值,然后通过管道传输:
Get-WmiObject -class Win32_logicaldisk | select -expandproperty deviceid | Get-ChildItem -path {$_}
您也可以只 select 返回对象中的 属性。在这种情况下,$_.DeviceID
Get-WmiObject -class Win32_logicaldisk | select deviceid | Get-ChildItem -path {$_.DeviceID}