PowerShell Get-WmiObject WIN32_VOLUME WHERE 子句

PowerShell Get-WmiObject WIN32_VOLUME WHERE clause

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

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 }

要过滤掉没有驱动器盘符的卷,请将 DriveLetter 属性 视为布尔值($null 和空字符串都被解释为 $false)在 Where-Object.

确保使用 -and 而不是 and(注意破折号):

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

(一开始我完全看错了你的问题,这里是原始答案):

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

您可以使用 -HideTableHeaders 开关参数自己调用 Format-Table 以从输出中取消它们:

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