简介:这是一款面向普通电脑用户与办公人群的C盘清理与系统优化工具,针对系统盘空间被临时文件、缓存与各类垃圾大量占用、响应变慢的问题,提供一键清理与性能优化能力。资源包共39个文件,以14个dll动态链接库、6个exe可执行程序、8个xml配置、5个dat数据文件及ui界面文件为主,涵盖清理引擎、网络模块、界面皮肤与配置项,压缩包约8.01MB,结构上分为sweeper清理、modules模块、Config配置与themes主题等目录,便于按功能定位。目前已有345人学习下载。通过包内清理引擎、白名单与缓存数据等模块,读者可了解一款清理工具的功能划分与运行机制,并借助配置与界面文件观察其模块化组织方式,为系统优化实践与工具分析提供参考。
1. 当 C 盘飘红时,我靠这套清理工具把 30GB 空间还给了系统盘
C 盘清理神器这个词,在软件/插件圈子里被搜烂了,但真正能打的没几个。上周帮同事处理一台开发机,C 盘只剩 1.2GB,Windows 更新卡死、IDE 索引直接报错,连临时文件都写不进去。我翻出自己维护了两年的清理工具包,跑完一轮,回收了 30GB 以上,系统盘重新回到绿色区间。这套工具不是那种一键“深度优化”的玄学软件,它更像一个分层清理的瑞士军刀:系统缓存、休眠文件、WinSxS 组件、旧驱动、日志、包管理器缓存,每一类都有对应的命令或小工具,按风险等级分开处理。适合谁?经常和 Windows 开发机打交道、C 盘容量小于 256GB、又不想重装系统的从业者。如果你只会点“一键清理”,这篇笔记里的参数和坑,值得你花十分钟看完。
2. 先搞懂 C 盘空间被谁吃了:四类占用与对应清理策略
2.1 系统级占用:休眠文件与虚拟内存
很多人第一次看到hiberfil.sys占了几 GB 会吓一跳。这是休眠文件,大小默认是物理内存的 40%~75%。如果你从不用休眠功能,直接关掉最省事。命令提示符(管理员)执行:
powercfg -h off这条命令会删除hiberfil.sys并关闭休眠。逻辑说明:-h是 hibernation 的缩写,off表示关闭。参数没有其他可选值,执行后立即生效,不需要重启。注意:关闭休眠后,快速启动也会失效,开机会慢几秒,但换来的是实打实的空间。我一般会在确认用户不用休眠后再执行,避免被抱怨开机变慢。
虚拟内存文件pagefile.sys不能直接删,但可以调整。右键“此电脑” → 属性 → 高级系统设置 → 性能设置 → 高级 → 虚拟内存更改。如果物理内存大于 16GB,可以把它设到其他盘,或者自定义大小设为 2048MB~4096MB。常见做法是保留在 C 盘但限制上限,防止系统崩溃时无法生成转储文件。
2.2 更新残留:WinSxS 与 Windows.old
C:\Windows\WinSxS是组件存储,看起来巨大,但绝对不能手动删。正确做法是用系统自带的 DISM 命令清理旧组件:
Dism.exe /Online /Cleanup-Image /StartComponentCleanup /ResetBase逻辑说明:/Online表示操作当前系统,/Cleanup-Image是清理镜像,/StartComponentCleanup清理旧组件,/ResetBase重置服务堆栈基础,让所有现有更新不可卸载。参数/ResetBase是双刃剑:执行后无法回滚已安装的更新,但能多释放 2~5GB。我一般只在系统稳定运行一个月后才加这个参数。
Windows.old是升级前的旧系统备份,默认保留 10 天。用磁盘清理工具最稳妥:cleanmgr /d C:,勾选“以前的 Windows 安装”。如果手动删,会留下权限混乱的文件夹,血泪经验。
2.3 应用缓存:包管理器与浏览器
开发机上最容易被忽略的是包管理器缓存。npm 的缓存默认在C:\Users\用户名\AppData\Local\npm-cache,跑npm cache clean --force可以清空。但更彻底的是直接删目录,因为--force有时会留下锁文件。Python 的 pip 缓存用pip cache purge,逻辑说明:purge会删除所有 wheel 和 http 缓存,参数无其他选项。
浏览器缓存建议用工具而不是手动删。Chrome 的缓存目录结构复杂,手动删容易导致配置文件损坏。我一般用 CCleaner 的自定义清理规则,只勾选“Internet 缓存”和“缩略图缓存”,不碰 Cookie 和密码。
2.4 日志与转储:被遗忘的 GB 级垃圾
C:\Windows\Logs、C:\Windows\Temp、C:\Users\用户名\AppData\Local\Temp这三个目录,长期不清理能攒出 10GB 以上。但直接全选删除会翻车:有些日志正被进程占用,删不掉还报错。正确姿势是用命令行按时间过滤:
forfiles /p "C:\Windows\Temp" /s /m *.* /d -7 /c "cmd /c del @path"逻辑说明:/p指定路径,/s递归子目录,/m *.*匹配所有文件,/d -7表示 7 天前的文件,/c后跟删除命令。参数-7可以改成-30更保守。注意:forfiles遇到长路径会报错,需要先启用长路径支持或改用 PowerShell 的Get-ChildItem管道。
内存转储文件MEMORY.DMP在C:\Windows下,如果系统没蓝屏过,可以直接删。但更规范的是在“系统属性 → 高级 → 启动和故障恢复”里把“写入调试信息”设为“无”,然后手动删一次。
3. 工具包实操:从扫描到清理的完整命令流
3.1 扫描阶段:用 WizTree 替代资源管理器
资源管理器统计文件夹大小慢得让人想砸键盘。WizTree 直接读 NTFS 的 MFT 表,扫描 1TB 盘只要几秒。下载后解压即用,不需要安装。打开后选择 C 盘,点“扫描”,然后按“大小”排序。重点看三个地方:Users、Windows、ProgramData。我一般会先导出 CSV,方便对比清理前后的变化。
参数上,WizTree 的“显示文件”模式比“显示文件夹”更直观,能直接看到哪个文件最大。比如C:\Users\用户名\AppData\Local\Docker\wsl\data\ext4.vhdx经常是几十 GB,这是 WSL2 的虚拟磁盘,需要单独压缩。
3.2 清理阶段:分步执行与回滚准备
清理前必须做一件事:创建系统还原点。命令:
wmic shadowcopy call create Volume='C:\'逻辑说明:wmic是 Windows 管理工具,shadowcopy是卷影复制,call create创建还原点。参数Volume='C:\'指定盘符。执行后可以用vssadmin list shadows查看。注意:如果系统保护没开启,这条命令会失败,需要先在“系统属性 → 系统保护”里启用 C 盘保护。
然后按风险从低到高执行:
- 清理临时文件:
cleanmgr /sagerun:1(需要先配置/sageset:1) - 清空回收站:
rd /s /q C:\$Recycle.Bin - 清理包管理器缓存:
npm cache clean --force和pip cache purge - 清理 WinSxS:
Dism.exe /Online /Cleanup-Image /StartComponentCleanup - 关闭休眠:
powercfg -h off
每一步之后用 WizTree 重新扫描,记录释放量。如果某一步释放异常少,说明该目录已经被其他工具清理过,不用纠结。
3.3 验证阶段:确认空间回收与系统稳定
清理完重启一次,然后检查三件事:C 盘剩余空间、事件查看器有无新的错误日志、常用软件能否正常启动。我一般会跑一个简单的 PowerShell 脚本统计:
Get-PSDrive C | Select-Object Used,Free逻辑说明:Get-PSDrive获取驱动器信息,Select-Object选择已用和剩余空间。参数无特殊。输出单位是字节,可以除以 1GB 换算。
如果重启后系统卡在登录界面,大概率是误删了WinSxS里的组件。这时候需要进恢复环境,用DISM /Image:C:\ /Cleanup-Image /RestoreHealth修复。所以再次强调:不要手动删WinSxS。
4. 避坑与排查:五条血泪经验
4.1 现象:清理后开始菜单打不开
原因:删除了C:\Windows\SystemApps下的某个文件夹,或者清理工具误判了 UWP 应用缓存。 解决:用 PowerShell 重新注册所有应用:
Get-AppXPackage -AllUsers | Foreach {Add-AppxPackage -DisableDevelopmentMode -Register "$($_.InstallLocation)\AppXManifest.xml"}逻辑说明:Get-AppXPackage获取所有用户安装的应用包,Add-AppxPackage重新注册。参数-DisableDevelopmentMode表示禁用开发模式注册,-Register指定清单文件。执行时间较长,耐心等。
4.2 现象:DISM 清理卡在 20% 不动
原因:Windows 更新服务正在占用组件存储,或者系统文件有损坏。 解决:先停止更新服务:
net stop wuauserv net stop bits然后重新跑 DISM。如果还是卡,加/ScratchDir参数指定临时目录到其他盘:
Dism.exe /Online /Cleanup-Image /StartComponentCleanup /ScratchDir:D:\Temp4.3 现象:删除临时文件后某软件报错“找不到路径”
原因:有些软件把临时文件当配置文件用,删了之后无法重建。 解决:从回收站恢复,或者重新安装该软件。我一般会在清理前把Temp目录整体复制到 D 盘备份,确认系统稳定后再删备份。
4.4 现象:WSL2 的 ext4.vhdx 越来越大,删了又怕丢数据
原因:WSL2 虚拟磁盘只增不减,删除文件后空间不会自动回收。 解决:用diskpart压缩:
wsl --shutdown diskpart select vdisk file="C:\Users\用户名\AppData\Local\Docker\wsl\data\ext4.vhdx" attach vdisk readonly compact vdisk detach vdisk exit逻辑说明:wsl --shutdown先关闭 WSL,select vdisk选中虚拟磁盘,attach vdisk readonly以只读方式挂载,compact vdisk压缩,detach vdisk卸载。参数readonly防止压缩过程中写入。注意:路径要替换成实际路径,压缩前备份重要数据。
4.5 现象:清理后系统激活状态丢失
原因:某些“优化”工具删除了C:\Windows\System32\spp下的令牌文件。 解决:重新输入产品密钥,或者用slmgr /rearm重置激活状态。但如果是数字许可证,通常重启后自动恢复。我从此不再用任何第三方“激活清理”功能。
5. 进阶技巧:把清理流程做成可重复的脚本
手动敲命令太累,我习惯把常用清理步骤写成一个 PowerShell 脚本,放在 D 盘,每月跑一次。核心结构如下:
# cleanup_c.ps1 $log = "D:\cleanup_log_$(Get-Date -Format 'yyyyMMdd').txt" Start-Transcript -Path $log # 1. 创建还原点 Checkpoint-Computer -Description "BeforeCleanup" -RestorePointType MODIFY_SETTINGS # 2. 清理临时文件 $tempPaths = @("$env:TEMP", "C:\Windows\Temp") foreach ($p in $tempPaths) { Get-ChildItem -Path $p -Recurse -ErrorAction SilentlyContinue | Where-Object { $_.LastWriteTime -lt (Get-Date).AddDays(-7) } | Remove-Item -Force -Recurse -ErrorAction SilentlyContinue } # 3. 包管理器缓存 npm cache clean --force 2>$null pip cache purge 2>$null # 4. 组件清理 Dism.exe /Online /Cleanup-Image /StartComponentCleanup # 5. 输出结果 Get-PSDrive C | Select-Object Used,Free Stop-Transcript逻辑说明:Start-Transcript记录所有输出到日志,方便回溯。Checkpoint-Computer创建还原点,参数-RestorePointType MODIFY_SETTINGS表示修改设置类型。Get-ChildItem配合Where-Object过滤 7 天前的文件,Remove-Item删除。-ErrorAction SilentlyContinue忽略被占用文件的报错。最后输出 C 盘空间。
参数调整建议:AddDays(-7)可以改成-30更保守;Dism那行可以加/ResetBase但会失去回滚能力。我一般会在脚本开头加一个pause,确认还原点创建成功后再继续。
验证方法:跑完脚本后,用 WizTree 对比清理前后的 CSV,看释放量是否合理。如果释放量小于 1GB,说明系统本来就很干净,不用反复跑。如果释放量超过 20GB,检查日志里有没有误删的路径。
从那以后我每次清理 C 盘前,都强制走一遍“创建还原点 → 备份 Temp → 分步执行 → 重启验证”的流程,再也没翻过车。希望帮到你。
本文还有配套的精品资源,点击获取