以GB为单位显示磁盘大小和FreeSpace

Kat*_*atz 6 powershell

是否有一行代码将以gb而不是mb显示逻辑磁盘的空闲大小和磁盘空间?我尝试做一些研究,但我找不到一个班轮,我确实给了这个尝试,将它除以1GB,但这不起作用,我怎么能做到这一点?

gwmi win32_logicaldisk | Format-Table DeviceId, MediaType,Size,FreeSpace /1GB
Run Code Online (Sandbox Code Playgroud)

Fro*_* F. 15

尝试计算属性.我还会添加[math]::Round()以缩短值:

gwmi win32_logicaldisk | Format-Table DeviceId, MediaType, @{n="Size";e={[math]::Round($_.Size/1GB,2)}},@{n="FreeSpace";e={[math]::Round($_.FreeSpace/1GB,2)}}
Run Code Online (Sandbox Code Playgroud)

n代表namee支持expression.您也可以使用全名,但如果您正在编写多个计算属性,则会浪费空间.

  • 如果有人真的认为有必要投反对票,我将不胜感激地发表评论来解释为什么它不好。他要求用一行代码来显示 GB 中的值,我提供了它并且它有效......:S (3认同)
  • 总是会发生这种情况,用户无缘无故地投票,或者说有理由却从不告诉你,你能做些什么.. (2认同)
  • Upvoted :).我不确定为什么我得到这个错误. (2认同)

Pir*_*e X 5

在执行任何算术计算时,应将其放在中{ }

gwmi win32_logicaldisk | Format-Table DeviceId, MediaType,Size, {$_.FreeSpace /1GB}
Run Code Online (Sandbox Code Playgroud)

您可以从Microsoft Powershell库中阅读有关语法的更多信息


Ora*_*ech 5

我想提供一个替代/更新的答案。(至少从 Powershell 5 开始,可能是第 3 版。)

只需使用Get-Volume https://docs.microsoft.com/en-us/powershell/module/storage/get-volume

例子:

> get-volume
    
DriveLetter FriendlyName     FileSystemType DriveType HealthStatus OperationalStatus SizeRemaining     Size
----------- ------------     -------------- --------- ------------ ----------------- -------------     ----
                             FAT32          Fixed     Healthy      OK                       451 MB   496 MB
C           OSDISK           NTFS           Fixed     Healthy      OK                     65.23 GB 474.3 GB
X           Transfer_Shuttle NTFS           Fixed     Healthy      OK                     37.65 GB 48.68 GB
Run Code Online (Sandbox Code Playgroud)

  • 嘿,直到 2020 年才得到了相当接近 df -ah 的东西! (2认同)