我正在运行以下PowerShell命令,我希望只返回C:驱动器的结果。没别了。
命令:
gwmi win32_volume -Filter 'drivetype = 3' | select driveletter, @{Label="PercentFree";Expression= {"{0:N0}" -f ($_.freespace / $_.capacity)}}
Current Output:
driveletter PercentFree
----------- -----------
41.95 %
C: 38.51 %
期望的输出:
C: 38.51 %
我可以通过从命令行中删除“driveletter”来删除列。但我不知道如何删除行。有什么想法吗?
答案 0 :(得分:0)
如果你只想要C:驱动器,为什么不只是使用C:
的过滤器Get-WmiObject win32_volume -Filter 'DriveLetter = "C:"' | select driveletter, @{Label="PercentFree";Expression= {"{0:N0}" -f ($data.freespace / $data.capacity * 100)}}
我修正了百分比逻辑,因为0。:N0
应该丢失任何东西。我只得到一个回报。
我认为这是作弊,但你也可以将输出管道输入where-Object
... | Where-Object{$_.DriveLetter}
来自评论
我以为你想知道额外的行来自哪里。我忽略了你想删除标题。这会让你想要你想要
Get-WmiObject win32_volume -Filter 'DriveLetter = "C:"' |
select driveletter, @{Label="PercentFree";Expression= {"{0:N0}" -f ($data.freespace / $data.capacity * 100)}} |
Format-Table -HideTableHeaders
那么这个怎么样:
Get-WmiObject win32_volume -Filter 'DriveLetter = "C:"' |
ForEach-Object{"{0} - {1}%" -f $_.driveletter,"{0:N2}" -f ($data.freespace / $data.capacity * 100)}
C: - 49.88%