2017-07-04 50 views
0

我目前正在使用power shell檢查磁盤空間大小,但想知道如何修改下面的內容以添加剩餘空間的百分比?Powershell中的磁盤空間檢查

Format-Table DeviceId, MediaType, @{n="Size";e={[math]::Round($_.Size/1MB,2)}},@{n="FreeSpace";e={[math]::Round($_.FreeSpace/1MB,2)}} 

我試圖通過改變數學來做到這一點,但沒有運氣。

gwmi win32_logicaldisk -Computername PCNAME| Format-Table DeviceId, MediaType, @{n="Size";e={[math]::Round($_.Size/1MB,2)}},@{n="FreeSpace" (%);e={[math]::Round($_.FreeSpace/$_.Size*100,2)}}|Out-File c:\PMC\Disk\OutPut\Newcastle.txt 

這只是返回一個錯誤。

+0

你不應該在'ForEach-Object'塊或'foreach'循環中不使用'Format-Table'。 –

+0

對實際問題的任何想法,儘管@Bill_Stewart – ThisIsLegend1016

+0

使用數學。免費百分比=可用空間/總空間。 –

回答

1

下面是一個例子,如何做到這一點:

gwmi Win32_LogicalDisk -Filter "DeviceID='C:'" | select Name, FileSystem,FreeSpace,BlockSize,Size | % {$_.BlockSize=(($_.FreeSpace)/($_.Size))*100;$_.FreeSpace=($_.FreeSpace/1GB);$_.Size=($_.Size/1GB);$_}| Format-Table Name, @{n='FS';e={$_.FileSystem}},@{n='Free, Gb';e={'{0:N2}'-f 
$_.FreeSpace}}, @{n='Free,%';e={'{0:N2}'-f $_.BlockSize}} -AutoSize 

輸出:

Name FS Free, Gb Free,% 
---- -- -------- ------ 
C: NTFS 593.59 31.88 
0

這裏是我寫了一個腳本的一部分,可以幫助你:

If (Test-Path 'C:') 
{ 
    $CDisk = GWMI Win32_LogicalDisk -Filter "DeviceID='C:'" 
    $CDisk = @{'Size'  = [Math]::Round($CDisk.Size/1GB); 
       'FreeSpace' = [Math]::Round($CDisk.FreeSpace/1GB)} 
    $CDisk.Add('Usage', ($CDisk.Size - $CDisk.FreeSpace)) 
    $CDisk.Add('PercentUsage', [Math]::Round(($CDisk.Usage/$CDisk.Size) * 100)) 

    "C: drive free space: $($CDisk.FreeSpace)GB" 
    "C: drive capacity: $($CDisk.Size)GB" 
    '--------------------------------' 
    "Disk usage:   $($CDisk.Usage)GB ($($CDisk.PercentUsage)%)" 
}