格式化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% 
+0

GET-WmiObject可以win32_volume -Filter '驱动器号= “C:”' |选择驱动器号,@ {Label =“PercentFree”; Expression = {“{0:P}”-f($ _。freespace/$ _。capacity)}} – CS3000911 2014-10-05 00:27:38

+0

对不起,select c: ,这很好。但它仍然有列标签。 – CS3000911 2014-10-05 00:28:21

+0

哦...它必须从百分比表达式.....只需一分钟 – Matt 2014-10-05 00:30:42