# PowerShell 一键统计电脑所有本地磁盘剩余空间带容量汇总空间预警双击运行不闪退文章目录# PowerShell 一键统计电脑所有本地磁盘剩余空间带容量汇总空间预警双击运行不闪退正文一、脚本介绍二、完整PowerShell脚本磁盘空间查看.ps1三、双击不闪退启动脚本启动磁盘统计.bat四、使用步骤五、运行效果示例六、踩坑排坑说明七、适用系统正文一、脚本介绍平时想快速查看电脑各硬盘分区总容量、已用空间、剩余空间、剩余占比手动打开此电脑挨个看很麻烦。本脚本特性仅读取本地固定硬盘自动过滤光驱、U盘、网络映射盘自动计算总容量/已用/剩余单位统一GB剩余空间百分比彩色预警剩余10%红色警告磁盘空间严重不足10% ≤ 剩余 20%黄色提醒建议清理文件剩余≥20%绿色正常自动汇总整机所有硬盘总容量、总已用、总剩余、全局剩余占比完整异常捕获读取磁盘报错会打印详情搭配bat启动器双击运行不会一闪闪退。二、完整PowerShell脚本磁盘空间查看.ps1# .SYNOPSIS 统计本机所有本地硬盘分区空间输出总容量、已用、剩余、剩余占比带空间颜色预警与整机汇总 #$ErrorActionPreferenceStop# 字节转换为GB保留2位小数functionConvert-ToGB{param([double]$Bytes)if($Bytes-le0-or$null-eq$Bytes){return0}return[Math]::Round($Bytes/1GB,2)}try{Write-Host正在读取磁盘信息请稍等...-ForegroundColor White# 获取本地固定硬盘 DriveType3 代表本地硬盘$disksGet-CimInstanceWin32_LogicalDisk-FilterDriveType3Write-Hostn 磁盘空间统计报告 -ForegroundColor CyanWrite-Host({0,-6}{1,-12}{2,-12}{3,-12}{4,-10}-f盘符,总容量(GB),已用(GB),剩余(GB),剩余占比)Write-Host----------------------------------------------------------ForegroundColor Gray$totalAllDisk 0$totalFreeAllDisk 0foreach($diskin$disks){$driveLetter$disk.DeviceID$totalBytes$disk.Size$freeBytes$disk.FreeSpace$usedBytes$totalBytes-$freeBytes$totalGBConvert-ToGB$totalBytes$usedGBConvert-ToGB$usedBytes$freeGBConvert-ToGB$freeBytes$freePercentif($totalGB-gt0){[Math]::Round(($freeGB/$totalGB)*100,1)}else{0}# 根据剩余占比设置文字颜色预警if($freePercent-lt10){$colorRed}elseif($freePercent-lt20){$colorYellow}else{$colorGreen}Write-Host({0,-6}{1,-12}{2,-12}{3,-12}-f$driveLetter,$totalGB,$usedGB,$freeGB)-NoNewlineWrite-Host($freePercent%)-ForegroundColor$color# 累加全局汇总数据$totalAllDisk$totalGB$totalFreeAllDisk$freeGB}Write-Host----------------------------------------------------------ForegroundColor Gray$totalUsedAll[Math]::Round($totalAllDisk-$totalFreeAllDisk,2)$totalFreePercentif($totalAllDisk-gt0){[Math]::Round(($totalFreeAllDisk/$totalAllDisk)*100,1)}else{0}Write-Host(整机汇总 | 总容量:{0}GB 已用:{1}GB 剩余:{2}GB 总剩余占比:{3}%-f[Math]::Round($totalAllDisk,2),$totalUsedAll,[Math]::Round($totalFreeAllDisk,2),$totalFreePercent)-ForegroundColor CyanWrite-Hostn}catch{Write-Hostn【程序执行出错详细错误信息如下】-ForegroundColor RedWrite-Host错误内容$_-ForegroundColor Yellow}# 强制暂停窗口不会自动关闭Write-Hostn按回车键关闭窗口...-ForegroundColor GrayRead-Host三、双击不闪退启动脚本启动磁盘统计.bat单独ps1文件直接双击会一闪而过使用bat调用可强制保留窗口报错、输出全部可见echo off :: 绕过系统脚本执行策略不自动关闭PowerShell窗口 powershell -ExecutionPolicy Bypass -NoExit -File %~dp0磁盘空间查看.ps1四、使用步骤新建文本文档分别复制两段代码保存两个文件文件1磁盘空间查看.ps1粘贴powershell代码文件2启动磁盘统计.bat粘贴bat代码将两个文件放在同一个文件夹双击启动磁盘统计.bat直接运行自动读取所有本地硬盘并输出完整报表。五、运行效果示例正在读取磁盘信息请稍等... 磁盘空间统计报告 盘符 总容量(GB) 已用(GB) 剩余(GB) 剩余占比 --------------------------------------------------------- C: 200 165.94 34.07 17% D: 19.53 3.08 16.46 84.3% H: 354.23 57.94 296.3 83.6% I: 271.37 245.43 25.94 9.6% M: 28.23 22.39 5.84 20.7% Z: 78.27 23.72 54.56 69.7% --------------------------------------------------------- 整机汇总 | 总容量:951.63GB 已用:518.46GB 剩余:433.17GB 总剩余占比:45.5% 按回车键关闭窗口...六、踩坑排坑说明问题1旧版使用Get-Volume读取磁盘所有已用空间显示0解决更换数据源为Get-CimInstance Win32_LogicalDisk读取系统原生磁盘容量字段数据精准。问题2WMI查询报错“无效查询”解决WMI中DeviceID格式为C:不能带\脚本直接使用CIM实例过滤避开拼接SQL语句产生的语法错误。问题3双击ps1脚本窗口一闪消失解决搭配bat启动器添加-NoExit参数强制窗口停留脚本末尾增加Read-Host双重暂停。问题4系统阻止执行PowerShell脚本解决bat内添加-ExecutionPolicy Bypass临时绕过执行策略无需手动修改系统策略。七、适用系统Windows10 / Windows11 全版本无需管理员权限即可运行。