windows-disk-cleanup
Skill1 starsChanged 30 days agoMITView on GitHub
Windows 磁盘空间体检、清理与跨盘迁移。当用户提出"清理 C 盘""C 盘快满了/变红了""把大文件或缓存搬到 D 盘""哪些文件可以删""释放磁盘空间""磁盘不够用了""卸载不常用软件腾空间"等诉求时使用。适用于 Windows 10 / 11,覆盖只读空间体检、安全清理候选识别、目录迁移到其他盘(复制→校验→删除→目录联接)、需管理员权限的收尾脚本生成,以及回收站、文件属主、中文路径编码等 Windows 专有陷阱的处理。执行任何删除或移动前必须逐项向用户确认,并提醒用户先备份关键数据。
- Reads credentials
2 other projects use a version of this.
Adopted by
Most recently taken up by
- GitZhiQing/agent-skillstheir own version, first seen Nov 1, 2026
- linad3d/drivekeepertheir own version, first seen Jul 25, 2026
Other versions2 projects use a version of this.
Word for word · 0
None found.
Edited · 0
None found.
Wrote their own version · 2
- linad3d/drivekeeper★ 4same name
- GitZhiQing/agent-skills★ 1same name
How matches are found. Word for word: the exact same text. Edited: shares passages with this file (“99% same” means 99% of its five-word phrases also appear here; 10% or more counts). Their own version: similar meaning, or, weakest, the same name. We can’t tell which project had it first. Projects are counted among the 200 most-starred candidates, and mentions are links to the repository we found, up to 50 per site, so both counts are a floor.
The file
Files
Windows Disk Cleanup & Cross-Drive Migration
Overview
Windows 上的磁盘清理与迁移有其固定的坑:删除只进回收站、目录体积统计工具不可靠、大量系统目录属主是 Administrators、程序运行中会导致迁移校验失败、中文路径在部分 shell 下判断出错。本技能把"备份 → 体检 → 报告 → 决策 → 迁移 → 清理 → 管理员收尾"固化成一套可重复执行的流程,并对上述陷阱给出确定性做法。
⚠️ 免责声明与备份要求(使用前必读)
本技能会执行删除与移动操作,可能导致数据不可逆丢失。使用前必须遵守以下约定:
- 先备份,再清理。 在开始任何清理之前,必须提醒用户备份极其重要的文件。因清理导致的重要文件丢失,本技能的作者与分发者不承担责任。
- 严禁未经确认删除他人数据。 不得在未逐项向用户展示并取得明确同意的情况下,删除或移动用户及他人电脑上的任何数据文件。
- 个人目录默认只读。 桌面、下载、文档、图片、视频、OneDrive / 网盘同步目录等个人内容,默认只做扫描,输出清单,由用户自行决定。
- 用户明确说"不用了"之前,一律视为有用。 任何"看起来像残留"的目录,都要先向用户确认,不得自行判断后删除。
若用户是替他人(家人、同事、客户)清理电脑,上述第 2、3、4 条为硬性要求:必须先导出清理清单交给机器所有者确认,再执行。
Core Principles
这些是不可违背的铁律,任何阶段都必须遵守:
- 只读优先。第一步永远是体检 + 出报告,绝不在用户看完清单前删除或移动任何东西。
- 逐项确认,不得批量默认。删除 / 迁移前列出每一个具体路径、体积、原因,等待用户明确确认后才执行。用户没有点到的项,一律不动。
- 不碰个人数据。桌面 / 下载 / 文档 / 图片 / 视频 / 通讯软件的聊天记录与用户数据目录,只读扫描、只出报告,不主动删除。
- 删除 ≠ 释放。Windows 上删除默认进回收站,只有清空回收站才真正释放空间。
- 迁移用五步法:复制 → 双重校验(文件数 + 字节数)→ 删原目录 → 建目录联接(Junction)→ 验证可读。任一步不达标即回滚。
- 管理员动作不硬闯。当前进程无管理员权限时,把需要提权的操作收集进一个
.bat脚本交给用户右键运行,不要在无权限时反复重试或强删。 - 体积一律实测。注册表
EstimatedSize、安装程序自报体积经常严重失真,必须以目录实际字节数为准。 - 先备份关键数据。见 Phase 0,任何清理前先处理备份。
Phase 0 — 备份关键数据(必须先做)
在删除或移动任何东西之前,先向用户提示可能受影响的重要数据,并建议复制到其他盘、移动硬盘或云端。即使不迁移,也建议先做一次备份。
需要重点提醒备份的类别(详见 references/backup-checklist.md):
| 类别 | 典型位置 |
| 登录凭据 / 账号信息 | 浏览器保存的密码与 Cookie、自动登录令牌、~/.ssh 私钥、.git-credentials、各 App 的 token / API Key 配置 |
| 密码管理器数据库 | KeePass .kdbx、Bitwarden 本地库等 |
| 聊天 / 通讯记录 | 微信 WeChat Files、QQ 用户目录、企业微信、钉钉本地数据 |
| 软件日志与诊断文件 | 各 AppData\...\logs、崩溃转储、审计日志 |
| 授权 / 许可证 | .lic / .key / 激活码文件、ProgramData 下的许可证目录 |
| 配置文件 | 编辑器与 IDE 配置、.vscode、.workbuddy、各软件 config / settings |
| 证书与密钥库 | .pem / .p12 / .pfx / .key |
| 浏览器数据 | 书签、扩展配置、登录状态 |
| 邮件本地数据 | .pst / .ost |
| 本地数据库 | .db / .sqlite / .mdb |
| 未同步的云盘文件 | 网盘本地缓存目录中尚未上传的内容 |
建议备份目标:另一块物理硬盘 > 移动硬盘 / U 盘 > 云端。不要把备份放在要清理的同一个盘上。
Workflow
Phase 1 — 只读体检(Read-only survey)
运行 scripts/disk_survey.ps1,得到各盘容量与使用率、根级目录体积构成、用户目录下 Top N 大目录 / 大文件,以及可安全清理的候选位置。
脚本把结果写入文件后由调用方读取(见"陷阱"一节说明原因)。
Phase 2 — 出报告并让用户决策
用 assets/report-template.html 生成可视化体检报告,包含空间构成、清理候选清单(分"可直接删 / 建议迁移 / 需逐项确认"三档)、迁移目标盘余量。
必须先交付报告,等待用户逐项回复后再进入 Phase 3。 不要在一个回合里直接开始删除。
Phase 3 — 迁移可搬目录到其他盘
对每个用户已确认的目录运行 scripts/migrate_folder.ps1:
.\scripts\migrate_folder.ps1 -Source "C:\Users\<user>\AppData\Local\SomeApp\Cache" -TargetRoot "D:\CBak"脚本执行五步法并在校验失败时自动回滚。要点:
- 目标路径镜像原结构:
<TargetRoot>\<去掉盘符后的原路径>,便于日后回指与还原。 - 迁移前必须确认对应程序已退出;程序运行中会持续写文件,导致校验恒不通过。
- Junction 免管理员权限即可创建,是 Windows 上"把缓存搬到别的盘、软件仍按原路径读写"的标准做法。
Phase 4 — 安全清理
按用户确认过的清单删除。分类处理:
- 白名单目录(如
%TEMP%、SoftwareDistribution\Download、错误报告)可直接批量清理。 - 程序残留(已卸载软件留下的数据目录)可清理,但先用三重交叉验证确认程序确已卸载:注册表 Uninstall 项 + 程序目录是否只剩
uninst.exe/deleteSelf.bat+ 是否还有快捷方式。仍要向用户确认后再删。 - 仍在运行的程序目录不要强删,留注册表垃圾比不删更糟。
Phase 5 — 管理员收尾
凡遇到下列情况,统一收集进 scripts/cleanup_admin.bat 模板(改好路径后交付用户右键"以管理员身份运行"):
- 目录属主是
BUILTIN\Administrators→ 需takeown+icacls接管 - 删除
HKLM/HKCR注册表键 - 停用 / 删除系统服务与驱动
- 卸载 MSI 程序
交付后提醒用户:脚本执行的最后一步是清空回收站,否则空间不会真正释放。
Windows-Specific Pitfalls
这些是本技能最核心的价值点,逐条都是实测踩出来的:
| 陷阱 | 现象 | 正确做法 |
| 体积统计 | 在 Windows 的 Git Bash 下 du 返回 0 | 用 PowerShell Get-ChildItem -Recurse | Measure-Object -Property Length -Sum |
| 工具输出 | PowerShell 的 stdout 常被宿主吞掉 | 结果写入临时文件,再用 Read 读取 |
| 删除不释放 | 删完可用空间没变 | 删除只是进回收站,需 Clear-RecycleBin -DriveLetter C -Force |
| 安全钩子 | Remove-Item 被拦截转回收站,失败时报 FAIL_CLOSED 并拒绝硬删 | 接受"删除→清空回收站"两步,或改为逐文件删除 |
| 批量删除阈值 | 单轮删除超约 50 个文件被拦 | 分批(≤ 50 文件/轮)处理 |
| 权限不足 | 删除报"访问被拒绝",属主为 Administrators | takeown /F <dir> /R /D Y + icacls <dir> /grant <user>:F /T 后再删 |
| 禁止 exe | 无法调用卸载程序 | 卸载交给用户手动执行或管理员 .bat |
| 中文路径 | Bash 下 [ -d 中文路径 ] 误报不存在 | 中文路径一律用 PowerShell 核实 |
| 注册表体积 | EstimatedSize 严重偏低 | 以目录实测字节数为准 |
| SSD 余量 | 盘满后性能骤降 | 保留总容量 10%–15% 空闲;系统盘建议 > 20 GB 可用 |
Resources
scripts/disk_survey.ps1— 只读空间体检,输出结构化文本报告scripts/folder_size.ps1— 单目录体积 / 文件数统计(替代不可靠的 du 与 EstimatedSize)scripts/migrate_folder.ps1— 五步法迁移并自动回滚scripts/cleanup_admin.bat— 需管理员权限的收尾操作模板references/thresholds.md— 磁盘余量阈值与清理决策标准references/permissions-and-safety.md— 权限、回收站、删除安全、确认流程细则references/cleanup-targets.md— 常见可清理 / 可迁移 / 禁止触碰的目录清单references/backup-checklist.md— 备份关键数据核对表assets/report-template.html— 体检报告模板
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

