PowerShell Get-WmiObject WIN32_VOLUME WHERE子句

时间:2016-01-15 12:46:24

标签: powershell powershell-v2.0

这是我的问题。我想要实现的只是显示驱动器类型为3(即HardDrives)但实际上有一个驱动器的信息:

GET-WMIOBJECT WIN32_VOLUME | where { $_.drivetype -eq '3'}| select-object freespace, capacity, drivetype, driveletter

目前显示:

                freespace                      capacity                     drivetype driveletter
                ---------                      --------                     --------- -----------
                273465344                     314568704                             3
              58966519808                  128522907648                             3 C:

所以第一行我不想要。我试过添加:

where { $_.drivetype -eq '3' and $_.driveletter -ne null } and where { $_.drivetype -eq '3'} and {$_.driveletter -ne null }

1 个答案:

答案 0 :(得分:2)

要过滤掉没有驱动器号的卷,请将DriveLetter属性视为$null内的布尔值($false和空字符串被解释为Where-Object)。 / p>

确保您使用-and代替and(请注意破折号):

Get-WmiObject Win32_Volume |Where { $_.drivetype -eq '3' -and $_.driveletter} |Select-Object freespace,capacity,drivetype,driveletter |Format-Table -HideTableHeaders

(我最初误解了你的问题,这是原始答案)

输出通过Format-Table隐式传输,生成您在输出中看到的表头。

您可以使用Format-Table开关参数自行呼叫-HideTableHeaders,以使其无法从输出中删除:

Get-WmiObject Win32_Volume |Where { $_.drivetype -eq '3'} |Select-Object freespace,capacity,drivetype,driveletter |Format-Table -HideTableHeaders
相关问题