格式化powershell输出
问题描述:
我正在运行下面的PowerShell命令,并且只希望返回C:驱动器的结果。没有其他的。格式化powershell输出
命令:
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 %
我可以删除列说,除去在命令行的 “驱动器号”。但我不知道如何删除行。有任何想法吗?
答
如果你只想要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%
GET-WmiObject可以win32_volume -Filter '驱动器号= “C:”' |选择驱动器号,@ {Label =“PercentFree”; Expression = {“{0:P}”-f($ _。freespace/$ _。capacity)}} – CS3000911 2014-10-05 00:27:38
对不起,select c: ,这很好。但它仍然有列标签。 – CS3000911 2014-10-05 00:28:21
哦...它必须从百分比表达式.....只需一分钟 – Matt 2014-10-05 00:30:42