2014-10-05 140 views
0

我正在運行下面的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 % 

我可以刪除列說,除去在命令行的 「驅動器號」。但我不知道如何刪除行。有任何想法嗎?

回答

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% 
+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