Skip to content

About

免安装的 Windows 磁盘清理工具(PowerShell 5.1 + WinForms,无需任何运行库)。43 个清理项按低/中/高三级风险分类,含磁盘占用环形图、多核并行扫描、系统还原点检测与液态玻璃兽爪启动动画。

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Repository files navigation

C 盘清理工具(DiskCleaner)

一个免安装的 Windows 磁盘清理工具。打开即自动扫描可清理项目并显示占用大小,勾选后一键永久删除。(正在重构中将更改基于形式与增加更多功能)

基于 Windows 自带的 PowerShell 5.1 与 WinForms 实现,不依赖任何运行库,整个文件夹拷贝到其他电脑即可直接使用。

界面采用 Miuix 设计风格。

特性

  • 启动动画:(如不喜欢可使用纯净版)打开时在内容区演出一只液态玻璃兽爪,全程 5 秒,动画期间点一下可立即跳过
  • 打开即扫描:启动后自动统计各清理项的占用大小,并单独在后台计算耗时的系统组件清理。目录遍历按顶层分枝分片到多核并行(实测最重的系统组件库快约 2.7 倍),结果与单线程逐字节一致
  • 磁盘占用可视:左栏环形图分「已勾选可释放 / 可清理未勾选 / 其他已用 / 可用空间」四段展示系统盘占比,环心显示可清理合计;鼠标靠近任一段时该段的外径会沿半径方向鼓大(整段不平移),并以折线引出该段的名称、数值与占比
  • 自由勾选:43 个清理项按低 / 中 / 高三级风险分类,低风险默认勾选,中高风险默认不勾,避免误删
  • 永久删除:直接删除文件,不经过回收站,确保空间真正释放
  • 安全兜底:内置多路径黑名单,拒绝删除 C:\、C:\Windows、C:\Users、用户目录、程序自身目录等;执行前弹出确认框,高风险项额外提示
  • 首次启动需同意免责声明:第一次打开时弹出免责声明,选择「我已阅读并同意」后才会进入主界面,同意状态记入配置文件,后续启动不再打扰
  • 可选自动清理:可设为每次启动时按上次的勾选自动清理,并给出 5 秒倒计时允许中止
  • 自动检测:启动时按本机目录判定每一项是否适用,没有对应软件或目录的项不会出现在列表里(没装 Office 就没有 Office 缓存项,没升级过系统就没有 Windows.old 项);列表右上角会显示「已隐藏 N 项」,日志里列出具体是哪些、为什么。目录存在但当前为空的项目仍会保留——它们下一轮就可能产生内容
  • 便携:配置与程序同目录,不写注册表,不打系统补丁,拷走即用

环境要求

  • Windows 10 / 11(需 PowerShell 5.1 及以上,系统自带)
  • 建议以管理员身份运行:部分系统级目录(如 Windows 更新缓存、DISM 组件清理)需要管理员权限才能操作

本工具的开发与验证环境:Windows 11 家庭版(中文)· 25H2 · 内部版本 26200 · PowerShell 5.1 · 显示缩放 125%(2560 × 1600)。其他系统版本、系统语言与缩放比例未经完整验证,详见 DISCLAIMER.md 第二节「测试环境」。

使用方法

  1. 双击 RunCleaner.bat,启动器会自动申请管理员权限
  2. 首次启动会弹出免责声明,阅读后点击「我已阅读并同意」;若选择「不同意并退出」,程序会直接关闭
  3. 等待扫描完成,按需勾选要清理的项目
  4. 点击「开始清理」,在弹出的确认框中确认后执行

若不想使用管理员权限,可直接右键 DiskCleaner.ps1 选择「使用 PowerShell 运行」,此时标注「需管理员权限」的项目会无法清理。

遇到问题请先查阅 常见问题(FAQ);反馈问题时请使用仓库的 Issue 模板,并附上你的系统版本与 PowerShell 版本。(如果你知道的话)

清理项目

下表是完整清单(43 项)。程序启动时会按本机实际情况自动隐藏不适用的项,所以你在界面上看到的通常少于这个数——例如本项目的测试机上显示 37 项,被隐藏的是没装对应软件的 6 项。隐藏规则与原因见上一节「自动检测」。

低风险(默认勾选)

清理项 说明 需管理员
用户临时文件 %TEMP% 中当前用户的临时文件
系统临时文件 Windows\Temp 系统级临时文件 是
回收站 清空回收站,请先确认无待恢复内容
缩略图 / 图标缓存 资源管理器缓存,删除后浏览图片时自动重建
崩溃转储文件 程序崩溃生成的 .dmp 文件
Windows 错误报告 系统错误报告缓存 是
浏览器缓存 Edge / Chrome 网页缓存、代码缓存、GPU 缓存
开发工具缓存 pip / npm / yarn / NuGet / Go / Cargo / Gradle 下载缓存
系统网络缓存 WinINet / IE 模式网络缓存目录
显卡着色器缓存 DirectX 与 AMD / Intel 显卡着色器缓存,删除后游戏首次加载略慢
浏览器 GPU 着色器缓存 Edge / Chrome 的 GPU 着色器缓存,与网页缓存分开存放
WebView2 应用缓存 Office / Teams 等内嵌浏览器组件的网页缓存
VS Code 缓存 CachedData、GPU 缓存与启动日志,删除后首次启动略慢
浏览器崩溃报告 Edge / Chrome 崩溃后留下的报告文件
远程桌面缓存 远程桌面连接的位图缓存,删除后首次连接略慢
QQ 临时数据 QQ 运行时的临时文件与日志,聊天记录与接收的文件不在范围内
百度网盘日志 百度网盘客户端与内核的日志,下载的文件不在范围内
Visual Studio 日志 VS 与安装程序的活动日志、遥测缓存

中风险(默认不勾选)

清理项 说明 需管理员
Maven / Gradle 本地仓库 Java 依赖本地仓库,删除后下次构建需重新下载
Windows 更新缓存 已下载的更新安装包,不影响已装好的更新 是
更新传递优化缓存 Windows 更新的 P2P 分发缓存 是
预读取文件 (Prefetch) 程序启动加速缓存,删除后前几次启动略慢 是
Windows 日志 系统日志、CBS 与 DISM 日志 是
字体缓存 系统字体缓存,删除后自动重建 是
NVIDIA 着色器缓存 显卡着色器缓存,删除后游戏首次加载略慢
NVIDIA 安装包缓存 NVIDIA App 下载的驱动安装包残留 是
安装包缓存 (Package Cache) 系统级与用户级的 VS / VC++ 安装包缓存,修复或卸载时可能需重下 是
系统事件日志 清空事件查看器中的日志内容 是
Windows 组件清理 (DISM) 清理 WinSxS 中的旧组件,耗时较长,清理后无法回滚已装更新。量列显示的是组件库当前占用,不代表可释放量,也不计入「可清理合计」 是
Adobe 媒体缓存 Premiere / After Effects 等生成的媒体缓存,删除后需重新生成
商店应用缓存 商店 / UWP 应用的本地缓存与临时状态,个别应用会把设置放这里
Office 缓存 Office 文档缓存与协作漫游缓存,删除后首次打开文档略慢
IDE 索引缓存 JetBrains / Visual Studio 的索引缓存,删除后需重新索引项目
系统组件日志与缓存 系统组件与 ETW / WMI 追踪日志、系统图标缓存 是
实时内核报告 显卡或驱动挂起时写下的实时内核转储,排查驱动问题用 是
Windows Defender 缓存与旧特征库 特征库备份、引擎日志与安全中心缓存,当前生效的特征库会保留 是
Visual Studio 安装源缓存 安装器下载的频道清单与引导程序缓存,安装状态记录会保留 是
Windows Defender 保护历史记录 Defender 的检测与处置记录,删除后保护历史会清空;隔离区不动 是

高风险(默认不勾选)

清理项 说明 需管理员
内存转储文件 MEMORY.DMP 与 Minidump,用于排查蓝屏 是
系统升级残留目录 $WINDOWS.~BT / $WINDOWS.~WS 升级临时目录,以及 $WinREAgent / $GetCurrent / Panther 安装残留 是
Windows.old 升级前的旧系统备份,删除后无法回退到旧版本 是
系统还原点 / 卷影副本 读取系统还原点占用的空间与个数;删除后无法回滚系统,依赖卷影副本的第三方备份也会一并失效 是
休眠文件 (hiberfil.sys) 关闭休眠并删除休眠文件,会同时关闭「快速启动」 是

安全说明

本工具执行的是永久删除,删除的文件不会进入回收站,无法通过常规手段恢复。使用前请留意:

  • 「回收站」一项会清空回收站,请先确认其中没有待恢复的文件
  • 「Windows.old」「系统升级残留目录」删除后将无法回退到旧版本系统
  • 「系统还原点 / 卷影副本」删除后将无法回滚系统,依赖卷影副本的第三方备份也会一并失效
  • 「休眠文件」删除会同时关闭「快速启动」功能
  • 执行清理前程序会弹出确认框列出待删项;高风险项会额外提示
  • 还原点的占用来自 VSS,需要管理员权限才能读取:普通权限下该行会显示「需管理员」而不是 0 B,以免让人误以为没有还原点。此时磁盘容量与还原点上限占比(读注册表即可)仍会照常显示

程序内置安全校验,会拒绝以下路径,避免误伤系统与自身:

C:\  C:\Windows  C:\Users  C:\Program Files  C:\ProgramData
当前用户目录  程序自身所在目录

另外,删除前程序会解析清理目标的真实落点:若某个目标是联结点 / 符号链接(例如把 %TEMP% 重定向到内存盘),会先解析到真实目录、对真实位置再跑一次同一套校验,通不过就拒绝;解析不出来且无法排除是链接时同样拒绝。这样「把临时目录换成指向系统关键目录的链接」这类手法不会生效。

二改与完整性校验

程序启动时会核对脚本自身的完整性:任何改动都会让它弹出提示框并停止运行,连清理功能也会一并失效(校验没通过时,删除引擎会拒绝一切目标)。这一条是为了让「拿改过的副本重新打包分发」难以悄悄发生。

为什么会加这两样:起因是身边朋友的公开项目被人二次修改后未作任何标注、拿去敛财。所以这里的「二次修改认证」不是为了禁止二改,而是要求改了就标明来源、别冒名顶替;防篡改保护的目的则很朴素——只是怕有人打开源码随手改了之后程序跑不起来(或改坏了自己还不知道),启动时先核对一下、被改过就直接说清楚,而不是让人对着一个莫名其妙报错的程序干瞪眼。想改的话走下面的授权通道就行,正常改、正常用。

如果你确实需要二次修改(二改),可以联系我获取跳过完整性校验的解锁密钥:

QQ:3406616048(加好友时请说明用途)

拿到密钥后,二选一:

# 方式一(推荐):把密钥单独写进程序同目录的 unlock.key
#   该文件已在 .gitignore 中,不会被提交,也不要放进发行包
# 方式二:命令行传入(注意命令行参数会显示在进程列表里)
powershell -ExecutionPolicy Bypass -File .\DiskCleaner.ps1 -UnlockKey "你的密钥"

解锁后程序功能完整可用,但启动日志里会明确写出「本次已跳过脚本完整性校验」——解锁不等于隐身。

改完脚本后必须重新封装指纹,否则程序会被自己的篡改检测拦下(退出码 3):

powershell -ExecutionPolicy Bypass -File .\DiskCleaner.ps1 -IntegritySeal

这一步同样需要密钥——封装与解锁共用同一道门,否则「改几行、自己封装一遍」就成了一条不留任何痕迹的旁路。把密钥放在程序同目录的 unlock.key 里(推荐),或用 -UnlockKey 传入;缺少有效密钥时封装会被拒绝,退出码 4。

关于这个密钥本身:

  • 密钥不随任何版本发布。仓库里只有它的单向校验值(SHA-256),无法据此反推出密钥;密钥只在作者本地留存
  • 请勿把密钥随你的改动一起发布,否则下个版本会更换密钥,泄露出去的那份随即失效
  • 它是「先问一声」的软性约束,不是密码学屏障:本项目源码公开,完整性校验本身也拦不住有心人,它筛掉的是「随手改一改就发布」,而不是有备而来的攻击者。需要硬保证的场景应当改用代码签名

本节的完整条款见 DISCLAIMER.md 第九节「二次修改(二改)与完整性校验」。

配置文件

首次运行后会在程序同目录生成 cleaner.config.json,记录勾选状态、自动清理开关与免责声明的同意状态。删除该文件即可恢复默认设置,此时下次启动会重新弹出免责声明。

命令行参数

除图形界面外,程序提供若干命令行开关,便于批量执行与问题排查:

参数 用途
-SelfTest 自检删除引擎与安全校验,仅在临时目录内操作,不触碰真实数据
-Console 控制台模式,不显示界面;配合 -Auto 可直接按配置执行清理
-RenderTo <路径> 将界面整体渲染为 PNG,用于比对视觉样式
-BenchPaint <帧数> 连续重绘指定帧数并报告耗时,用于性能对比
-SnapTo <路径> 走真实启动流程后截图,并额外输出一张滚动后的画面
-Config <路径> 指定配置文件路径
-UnlockKey <密钥> 二改授权:跳过脚本完整性校验(密钥不随仓库发布,见下文「二改与完整性校验」)
-IntegritySeal 维护用:重新计算并写回脚本自身的完整性指纹(改过脚本必须执行一次)。同样需要有效的二改授权密钥,否则拒绝封装并退出 4

示例:

# 自检(不修改任何真实数据)
powershell -ExecutionPolicy Bypass -File .\DiskCleaner.ps1 -SelfTest

# 控制台模式,按配置文件静默清理
powershell -ExecutionPolicy Bypass -File .\DiskCleaner.ps1 -Console -Auto

文件说明

文件 说明
DiskCleaner.ps1 主程序
RunCleaner.bat 启动器,自动申请管理员权限
FAQ.md 常见问题解答
开发日志.md 更新日志,含各版本修复的缺陷说明
DISCLAIMER.md 完整免责声明,使用前请阅读
LICENSE MIT 开源许可协议
cleaner.config.json 运行时生成的配置(未纳入版本管理)

免责声明

本节为摘要,完整条款见 DISCLAIMER.md。

本工具执行的是永久删除,被删文件不进入回收站,无法通过常规手段恢复;其中「Windows.old」「系统升级残留目录」「系统还原点 / 卷影副本」「休眠文件」「Windows 组件清理 (DISM)」等项具有不可逆的系统级影响。

本项目保留的各历史版本(开发目录中按版本号留档的副本,以及 Releases 页面上的历史发布)仅作开发历程留档,均为过时版本、不在维护范围内,部分含已知缺陷;本声明的全部条款同样适用于它们,建议仅使用最新版本。详见 DISCLAIMER.md 第六节。

本工具按「现状」(AS IS)提供,不附带任何明示或默示担保。作者不对使用或无法使用本工具所导致的任何数据丢失、系统损坏、业务中断等直接或间接损失承担责任。请在清理前自行确认勾选项并做好重要数据备份,因误删造成的数据丢失需由使用者自行承担。

本工具由林中晨曦工作室(个人工作室)开发、署名并免费公开,未授权任何形式的有偿服务——任何以本工具或本工作室名义提供的付费清理、远程代删、代运维或「付费技术支持」,均与本工作室无关。详见 DISCLAIMER.md 第八节。

本工具内置脚本完整性校验,改动后会拦截启动。未经授权的二次修改与再分发与本工作室无关:修改版的发布者需自行承担全部后果,不得以本工作室名义发布,并应标明为非官方版本;解锁密钥仅限领取者本人使用、不得公开传播。如果你运行的副本标题栏出现红色「已绕过完整性校验」,说明它跳过了校验、内容未经核对,请先确认来源。详见 DISCLAIMER.md 第九节。

About

免安装的 Windows 磁盘清理工具(PowerShell 5.1 + WinForms,无需任何运行库)。43 个清理项按低/中/高三级风险分类,含磁盘占用环形图、多核并行扫描、系统还原点检测与液态玻璃兽爪启动动画。

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages