尧图建网站 尧图建网站 YAOTU WEB BUILD 免费咨询
ARTICLE DETAIL

资讯详情

深耕网站建设与建站编程的一线实战洞察。

Windows C盘深度清理方案:系统工具+PowerShell脚本释放10GB空间

Windows C盘深度清理方案:系统工具+PowerShell脚本释放10GB空间 C 盘又红了Windows 用上大半年你会发现各种缓存、更新残留、临时文件、旧驱动包堆在一起空间悄无声息就没了几十 GB。网上清理工具很多但要么带全家桶要么核心功能要付费。这次我们不扯虚的直接看一套 Windows 深度清理方案系统自带工具 官方命令行 可复制的 PowerShell 脚本组合起来就能实现接近“一键清理”的操作常见环境下释放 10GB 级别空间并不夸张。本文会按“清理什么 → 怎么安全清理 → 脚本怎么写 → 怎么验证效果 → 出问题怎么排查”的顺序展开。如果你手上有 C 盘吃紧的 Windows 10/11 设备或者要批量维护多台办公电脑建议直接收藏。所有脚本均以管理员身份运行清理对象限制在临时文件、缓存、更新残留等安全范围不涉及系统核心文件。1. 核心能力速览能力项说明清理对象Windows 临时文件、Windows Update 缓存、回收站、缩略图缓存、系统日志、崩溃转储、Windows.old 旧系统残留、WinSxS 组件残留主要手段系统设置、cleanmgr 磁盘清理、PowerShell 脚本、bat 批处理、DISM 官方命令启动方式手动点击、命令行执行、Windows 计划任务自动执行支持系统Windows 10、Windows 11Windows Server 2016/2019/2022 同样适用清理量预期视系统使用时长而定常见办公机首轮清理可释放数 GB 到 10GB 以上自动化能力脚本可嵌入计划任务实现每周自动清理安全边界只清理系统明确标注为缓存/临时/可回收的目录不删除个人文档、软件安装目录、系统核心文件适合场景C 盘空间告急、批量化运维办公电脑、软件卸载后残留清理、游戏平台更新缓存清理这里要先把“一键清理 10G”说清楚。Windows 不同电脑的垃圾文件积累速度差别很大一台刚装完系统、常用软件很少的机器能清理出来的空间可能只有 1 到 2GB一台用了半年以上、经常打补丁、浏览器缓存和微信文件都堆积在 C 盘的办公机清理出 10GB 甚至 20GB 都是可能的。实际能清多少取决于这台电脑的“历史包袱”脚本负责把能安全回收的空间全部释放出来。2. Windows 垃圾文件的来源与构成要想清理得干净先要知道垃圾文件躲在哪。Windows 的垃圾文件并不是单个文件夹而是散落在系统目录、用户目录和软件缓存目录里的一堆碎片。常见来源包括Windows Update 下载缓存路径在C:\Windows\SoftwareDistribution\Download每次系统更新下载的安装包都会放在这里更新完成后不会自动全量清理。系统临时文件用户临时目录%TEMP%、系统临时目录C:\Windows\Temp软件安装、解压、运行过程会持续产生临时文件。Windows.old 旧系统目录从旧版本升级到 Windows 10/11 后系统会保留旧系统文件以便回滚这个目录通常有 10 到 30GB。WinSxS 组件存储冗余Windows 组件服务目录会保存多个版本的系统组件更新不断叠加即使 SP 版本已经退役旧组件也不会自动删除。缩略图缓存Explorer 在浏览图片和视频时会生成thumbcache_*.db积累多了也很占空间。回收站用户删除的文件并没有真正释放空间而是留在回收站里。崩溃转储文件蓝屏、程序崩溃时生成的MEMORY.DMP、Minidump文件体积可能达到数 GB。浏览器缓存Edge、Chrome 的 Cache 目录视频网站的临时文件尤其占地方。软件日志与缓存Windows 事件日志、CBS 日志、软件运行日志日积月累也不可忽视。第三方软件缓存微信、QQ 的文件接收缓存、图片缩略图缓存往往达到 5GB 以上pip、npm、winget 等包管理器的缓存目录同样会持续膨胀。这些目录里的内容绝大多数属于“删除后不影响系统运行”的冗余数据。清理的核心逻辑就是把这些位置的无效文件找出来、确认没有正被使用、然后批量删除。3. 清理前准备与安全边界深度清理前先做两件事备份和还原点。虽然清理范围限定在安全的缓存目录但 Windows 系统的状态千奇百怪谁也没法保证某个临时文件正被某个服务占用或者某个日志文件被监控程序锁定。稳妥的流程是先创建还原点再开始清理。3.1 创建系统还原点在管理员 PowerShell 或 CMD 中执行Checkpoint-Computer -Description CleanupBefore -RestorePointType MODIFY_SETTINGS如果系统提示“无法创建还原点”说明系统保护功能没有开启。可以手动打开开始菜单搜索“创建还原点”选择系统盘点击“配置”开启系统保护然后重新执行上面的命令。3.2 关闭正在运行的大型软件清理前建议关闭浏览器、微信、QQ、Office、游戏平台等正在运行的软件。部分临时文件在被软件占用时无法删除脚本会跳过它们。这与安装软件时要关闭杀毒软件是同一个道理减少文件锁清理才彻底。3.3 明确不能清理的内容深度清理脚本有一些“绝对不能碰”的目录C:\Windows\System32下的系统文件C:\Windows\WinSxS目录本身不能直接手动删除里面的文件必须用 DISM 命令清理用户“文档”“图片”“桌面”“下载”文件夹中的手动文件正在使用的软件安装目录杀毒软件隔离区文件建议在软件内操作隔离/恢复安全边界原则是只看系统明确标记为临时、缓存、日志、可回收的目录不做“全盘搜索大文件删除”这种危险操作。大文件扫描只负责定位删除动作由你自己判断。4. 系统自带清理工具优先手动清理之前先让 Windows 自带工具发挥一轮作用。自带工具对系统目录最了解不会误删关键文件。4.1 开启存储感知Windows 10/11 自带的存储感知可以自动清理临时文件和回收站文件。设置路径设置 → 系统 → 存储 → 存储感知打开开关后点击“配置存储感知或立即运行”。推荐配置运行存储感知每周删除我的应用未在使用的临时文件勾选回收站文件保留期限14 天下载文件夹保留期限永不存储感知适合做日常维护但它清理得比较保守对于已经堆积了很久的 C 盘还需要配合本节下面的磁盘清理和深度清理脚本。4.2 cleanmgr 磁盘清理图形界面在“此电脑”中右键 C 盘选择“属性 → 磁盘清理”Windows 会扫描可回收的项目。点击“清理系统文件”按钮会再次扫描并列出 Windows 更新清理、Windows.old、系统还原点等大项。在这个界面里可以直观地看到各类可清理项目的大小勾选后点击确定即可。这是最安全的清理入口但问题在于需要人工操作不适合批量处理。4.3 cleanmgr 命令行自动清理磁盘清理工具支持命令行参数可以预设清理配置并自动执行。先在管理员 CMD 中配置清理项cleanmgr /sageset:100执行后会出现磁盘清理设置界面勾选你希望清理的项目点击确定配置会保存到注册表。之后运行cleanmgr /sagerun:100Windows 就会按刚才勾选的项目自动清理不需要再人工点击。如果你打算做批量自动化这个命令可以嵌入 bat 或计划任务。4.4 DISM 清理 WinSxS 组件残留WinSxS 是 Windows 组件存储目录它不能用手动删除的方式清理但可以通过 DISM 官方命令进行组件清理压缩体积。管理员 CMD 执行Dism.exe /Online /Cleanup-Image /StartComponentCleanup如果想进一步清理被取代的组件版本Dism.exe /Online /Cleanup-Image /StartComponentCleanup /ResetBase/ResetBase会让已安装的更新不可再卸载所以建议在确认系统稳定后执行。这个命令对 C 盘释放空间的帮助非常明显常见场景下能释放几个 GB 的组件缓存。5. PowerShell 深度清理脚本系统自带工具清理完一轮之后接着用 PowerShell 脚本进行深度清理。相比 cleanmgr脚本可以覆盖更多目录而且可以组合成一条命令执行实现接近“一键清理”的效果。5.1 临时文件清理Write-Host 清理临时文件目录... -ForegroundColor Yellow $tempPaths ( $env:TEMP, $env:WINDIR\Temp, $env:LOCALAPPDATA\Temp ) foreach ($path in $tempPaths) { if (Test-Path $path) { Write-Host 清理: $path Get-ChildItem -Path $path -Recurse -Force -ErrorAction SilentlyContinue | Remove-Item -Recurse -Force -ErrorAction SilentlyContinue } }这段脚本遍历三个常见临时目录删除所有文件和子目录。因为加上了-ErrorAction SilentlyContinue被占用的文件会自动跳过不会报错中断。5.2 Windows Update 缓存清理Write-Host 清理 Windows Update 下载缓存... -ForegroundColor Yellow $updateCache $env:WINDIR\SoftwareDistribution\Download if (Test-Path $updateCache) { Get-ChildItem -Path $updateCache -Recurse -Force -ErrorAction SilentlyContinue | Remove-Item -Recurse -Force -ErrorAction SilentlyContinue }建议在系统没有正在下载更新的时候执行。如果清理后某次更新出现下载问题重启 Windows Update 服务即可。5.3 清空回收站Write-Host 清空回收站... -ForegroundColor Yellow Clear-RecycleBin -Force -ErrorAction SilentlyContinue如果回收站里有你需要恢复的文件这一步之前请确认一遍。5.4 清理缩略图缓存Write-Host 清理缩略图缓存... -ForegroundColor Yellow Remove-Item -Path $env:LOCALAPPDATA\Microsoft\Windows\Explorer\thumbcache_*.db -Force -ErrorAction SilentlyContinue清完后首次打开图片文件夹会重新生成缩略图这是正常现象。5.5 清理 Windows 日志文件Write-Host 清理 Windows 日志... -ForegroundColor Yellow $logPaths ( $env:WINDIR\Logs\CBS, $env:WINDIR\Logs\MoSetup, $env:WINDIR\Logs\NetSetup ) foreach ($path in $logPaths) { if (Test-Path $path) { Get-ChildItem -Path $path -Filter *.log -Recurse -Force -ErrorAction SilentlyContinue | Remove-Item -Force -ErrorAction SilentlyContinue } }CBS 日志是 Windows 组件服务日志通常用于排错删掉旧日志不影响系统运行。如果你正在排查 Windows 更新问题建议先保留日志排查完再清。5.6 清理崩溃转储文件Write-Host 清理崩溃转储文件... -ForegroundColor Yellow Remove-Item -Path $env:LOCALAPPDATA\CrashDumps\* -Recurse -Force -ErrorAction SilentlyContinue Remove-Item -Path $env:WINDIR\Minidump\* -Recurse -Force -ErrorAction SilentlyContinue Remove-Item -Path $env:WINDIR\MEMORY.DMP -Force -ErrorAction SilentlyContinue这些崩溃文件是调试蓝屏和程序崩溃时使用的普通用户留着没有任何意义。5.7 完整清理脚本组合把上面的段落组合成一个脚本文件保存为win-cleanup.ps1。以管理员身份打开 PowerShell执行Set-ExecutionPolicy -ExecutionPolicy Bypass -Scope Process -Force powershell -ExecutionPolicy Bypass -File .\win-cleanup.ps1脚本执行完成后会打印清理日志。由于不同的清理段分别屏蔽了删除错误整个过程不会因为某个文件被占用而中断。如果需要统计释放了多少空间可以在脚本中先记录 C 盘剩余空间再在结尾输出差值。下面是一段可用的示例$before (Get-PSDrive C).Free # 在这里执行上述清理段落 $after (Get-PSDrive C).Free $released [math]::Round(($after - $before) / 1GB, 2) Write-Host 清理完成释放空间: $released GB -ForegroundColor Green注意C 盘剩余空间的变化还会受到系统后台写入的影响数值可能不完全准确但可以作为一个参考。6. bat 批处理脚本与自动化清理PowerShell 脚本适合功能复杂、需要日志输出的清理任务bat 批处理更适合快速执行和嵌入计划任务。如果你熟悉命令行可以在 bat 里直接组合 cleanmgr、PowerShell 和 DISM 命令实现一键清理。6.1 基础 bat 清理脚本创建一个clean.bat右键以管理员身份运行echo off chcp 65001 nul echo echo Windows 深度清理脚本 echo echo [1/4] 清理用户和系统临时文件... del /q /f /s %TEMP%\* nul 21 del /q /f /s C:\Windows\Temp\* nul 21 echo [2/4] 清空回收站... powershell -Command Clear-RecycleBin -Force nul 21 echo [3/4] 运行磁盘清理工具... cleanmgr /sagerun:100 nul 21 echo [4/4] 清理 Windows 组件残留... Dism.exe /Online /Cleanup-Image /StartComponentCleanup echo. echo 清理完成 pause这个脚本适合快速处置一台 C 盘告急的电脑。注意前面的cleanmgr /sageset:100配置需要先执行一次否则sagerun不会生效。6.2 结合游戏性能优化场景的 bat如果你清理的电脑是一台游戏机常见诉求是清理临时文件后把电源计划切换到高性能。可以在 bat 中追加echo 设置电源计划为高性能... powercfg /setactive SCHEME_MINSCHEME_MIN对应“高性能”电源计划。如果要使用“卓越性能”需要先执行powercfg -duplicatescheme e9a42b02-d5df-448d-aa00-03f14749eb61解锁。这里再说一句网上很多“游戏性能优化 bat”会强行关闭系统服务、修改注册表风险很高。更稳妥的做法是只做临时文件清理、调整电源计划、关闭无关开机启动项不要随意停用系统服务。6.3 通过计划任务实现自动清理如果不想每次手动执行可以把清理脚本放到任务计划里每周自动跑一次。创建计划任务命令schtasks /create /tn WindowsDeepCleanup /tr powershell -ExecutionPolicy Bypass -File C:\Scripts\win-cleanup.ps1 /sc weekly /d Sunday /st 02:00 /ru SYSTEM这个命令创建每周日凌晨两点运行的计划任务使用 SYSTEM 权限执行。实际使用时需要把C:\Scripts\win-cleanup.ps1替换成脚本实际路径。建议任务触发时电脑保持开机状态或者用笔记本时插上电源再让它跑。7. 清理效果验证与空间统计清理完不等于结束要验证两个指标C 盘剩余空间是否增加系统功能是否正常。7.1 查看磁盘空间变化最简单的方式打开“此电脑”查看 C 盘可用空间。也可以使用命令行wmic logicaldisk where captionC: get freespace,total输出中的 FreeSpace 是剩余字节数除以 1024 三次可以得到 GB 值。更直观的是在 PowerShell 中执行Get-PSDrive C | Select-Object {NameFreeSpaceGB;Expression{[math]::Round($_.Free/1GB,2)}}, {NameUsedSpaceGB;Expression{[math]::Round(($_.Used)/1GB,2)}}7.2 扫描剩余大文件如果清理完之后发现 C 盘还是不够用说明空间被大文件、软件数据或虚拟内存文件占据单纯清理缓存解决不了。这时候要用磁盘分析工具扫描大文件分布WizTree扫描速度极快几秒就能列出 C 盘所有大文件和目录免费版足够用。TreeSize Free按目录可视化空间占用。SpaceSniffer以区块图展示目录大小适合直观找“谁是空间杀手”。找出大文件后判断是否可迁移。常见处理微信/QQ 的聊天文件缓存在软件设置里把存储位置改到 D 盘。虚拟内存文件 pagefile.sys 可以设置到其他盘或调小。休眠文件 hiberfil.sys 如果不用休眠功能可以在管理员 CMD 执行powercfg /h off关闭释放与内存大小相近的磁盘空间。Docker Desktop、WSL 的虚拟磁盘文件可以在设置中迁移到其他分区。开发环境的 node_modules、pip 缓存、npm 缓存可以设置缓存路径到非系统盘。7.3 系统完整性检查清理后建议执行一次系统文件完整性检查确认没有误伤系统组件sfc /scannow如果 SFC 提示“Windows 资源保护找到了损坏文件但其中有一些文件无法修复”可以继续执行 DISM 修复系统映像Dism.exe /Online /Cleanup-Image /RestoreHealth这个操作和清理不同它的作用是修复系统文件属于清理后的健康检查流程。8. 常见问题与排查方法问题现象可能原因排查方式解决方案清理脚本提示“拒绝访问”当前 PowerShell 或 CMD 没有管理员权限检查窗口标题是否为“管理员”右键“以管理员身份运行”临时文件删不掉文件正被运行中的软件占用查看是哪个进程占用该文件关闭对应软件后重新清理清理后 C 盘空间变化不大大量空间被软件数据、虚拟内存或 Docker/WSL 磁盘占满使用 WizTree 扫描大文件目录迁移软件数据、调整虚拟内存、移动虚拟磁盘cleanmgr /sagerun 没有反应没有事先执行 cleanmgr /sageset 保存配置检查注册表 HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\VolumeCaches重新执行 /sageset 并勾选项目Windows Update 清理后无法下载更新Windows Update 服务异常查看事件日志中的 Update 相关记录重启服务“停止 → 清理 - 启动”或在命令中执行 services.msc 重启 wuauserv清理后开始菜单或资源管理器卡顿缩略图缓存清空后首次遍历图片目录等待系统重新生成缩略图打开图片文件夹等待几秒至几分钟即可恢复回收站无法清空个别文件损坏导致 Clear-RecycleBin 失败检查错误信息指向哪个盘符到对应磁盘分区右键回收站单独清空脚本执行后 PowerShell 窗口闪退执行策略未放行或脚本路径错误直接在 PowerShell 中运行脚本观察报错使用powershell -ExecutionPolicy Bypass -File 脚本路径运行9. 最佳实践与定期维护建议深度清理不是一次性的工作建议建立一套定期维护节奏。9.1 维护节奏每周开启存储感知自动清理临时文件和回收站。每月手动运行一次 PowerShell 深度清理脚本包括临时文件、Windows Update 缓存、浏览器缓存、缩略图缓存。每季度执行 DISM 组件清理清理 WinSxS 冗余。9.2 脚本管理把本地部署脚本集中放到一个目录例如C:\Scripts\统一命名并在脚本头部写清楚用途和运行方式。对于批量维护多台办公电脑的场景建议先在一台测试机上完整跑一次确认没有软件兼容性问题后再通过计划任务批量分发。9.3 大文件迁移原则不要把应用安装在 C 盘当成“原罪”但确实应该关注大文件的存放位置。Docker Desktop 的虚拟磁盘、WSL 的 ext4.vhdx、微信/QQ 的聊天缓存这三类文件在长期使用后体积增长明显建议在安装或设置阶段就把存储路径指向非系统分区。9.4 安全提醒清理脚本只针对缓存、临时文件、更新残留和系统日志不涉及第三方软件的数据目录和用户文档。如果你在别人的电脑上执行清理、或者负责公司电脑的批量维护需要先获得授权并提前告知可能产生的影响。涉及用户文档的清理动作无论如何都要保留备份。10. 总结与下一步这次我们看的是一套完整的 Windows 深度清理方案系统自带的磁盘清理和存储感知负责安全兜底PowerShell 脚本负责覆盖更多缓存目录bat 脚本负责快速执行和计划任务接入DISM 命令负责压缩 WinSxS 冗余。整套流程走下来释放 10GB 级别空间在常见办公环境下是完全可以实现的。最容易踩的坑有两个一是临时文件被占用导致脚本跳过这不是脚本问题关闭正在运行的软件即可二是在没有创建还原点的情况下贸然删除不明目录。强烈建议第一次运行脚本前先执行Checkpoint-Computer后续再放心自动化。下一步有两个方向可以继续做一个是在你的深度清理脚本基础上增加逐项展示的清理报告方便批量运维时做数据统计另一个是结合磁盘分析工具建立 C 盘空间巡检机制每周自动扫描大文件和异常膨胀目录把问题消灭在 C 盘变红之前。这套方法不需要安装任何第三方清理软件全部使用 Windows 系统自带能力和可审查的开源式脚本长期维护成本很低建议直接收藏备用。
返回列表