最直接有效的方式是使用PowerShell内置cmdlet:新手推荐Get-PSDrive筛选FileSystem提供者;需精准查看固定磁盘用Get-Volume加DriveType过滤;脚本化推荐Get-CimInstance查询Win32_Volume;单盘查询可用Get-Volume -DriveLetter。
在 Windows 中用 PowerShell 查看磁盘剩余容量,最直接有效的方式是调用系统内置的 cmdlet 或 CIM 类,无需安装额外工具。重点不是“能不能查”,而是选对命令——不同命令适用场景略有差异:有的快、有的全、有的可脚本化、有的带类型过滤。
运行这条命令,能立刻看到 C:、D: 等所有有盘符的本地驱动器及其可用空间:
Get-PSDrive -PSProvider FileSystem | Select-Object Name, @{Name="Free(GB)";Expression={[math]::Round($_.Free/1GB,2)}}, @{Name="Used(GB)";Expression={[math]::Round($_.Used/1GB,2)}}, @{Name="Total(GB)";Expression={[math]::Round(($_.Used + $_.Free)/1GB,2)}}
如果你关心的是物理硬盘上的“真实卷”(比如排除 U 盘、网络映射盘),用 Get-Volume 更可靠:
Get-Volume | Where-Object {$_.DriveType -eq 'Fixed'} | Select-Object DriveLetter, HealthStatus, @{Name="Free(GB)";Expression={[math]::Round($_.SizeRemaining/1GB,2)}}, @{Name="Total(GB)";Expression={[math]::Round($_.Size/1GB,2)}}
需要精确数值、或要在批处理/自动化中使用时,推荐 CIM 查询:
Get-CimInstance -ClassName Win32_Volume | Where-Object {$_.DriveType -eq 3 -and $_.DriveLetter} | Select-Object DriveLetter, @{Name="Free(GB)";Expression={[math]::Round($_.FreeSpace/1GB,2)}}, @{Name="Capacity(GB)";Expression={[math]::Round($_.Capacity/1GB,2)}}
-and $_.DriveLetter 过滤掉无盘符的系统保留分区如果只需确认一个盘,不必扫全盘,效率更高:
Get-Volume -DriveLetter C | Select-Object DriveLetter, @{Name="Free(GB)";Expression={[math]::Round($_.SizeRemaining/1GB,2)}}, @{Name="Used(GB)";Expression={[math]::Round(($_.Size - $_.SizeRemaining)/1GB,2)}}