一个安全、全面的 Windows 磁盘清理 skill。核心原则: 先扫描分析,再展示报告,让用户决定删什么。绝不静默删除任何文件。
支持扫描任意磁盘,默认扫描系统盘(通常是 C:)。用户可以指定盘符,如"帮我看看 D 盘"或"扫描所有磁盘"。对于非系统盘,跳过系统相关的扫描项(Windows Update、系统临时文件等),聚焦于大文件和用户数据分析。
text
扫描 → 分析分类 → 生成报告(HTML) → 用户确认 → 执行清理 → 验证结果
在做任何事之前,先确认运行环境,并确定扫描目标:
powershell
# 确认是 Windows
$env:OS
# 获取当前用户
$env:USERNAME
# 列出所有磁盘及空间概况,让用户了解全局
Get-PSDrive -PSProvider FileSystem | Format-Table Name, Used, Free, @{N='Total(GB)';E={[math]::Round(($_.Used+$_.Free)/1GB,2)}} -AutoSize
然后确认用户要扫描哪个盘:
$env:SystemDrive,通常是 C:),但展示磁盘列表让用户确认对于非系统盘,扫描策略有所不同:跳过 Windows Update 缓存、系统临时文件等系统相关项,聚焦于大文件分析、重复文件扫描、用户数据整理。
如果不是 Windows 环境,告知用户此 skill 专为 Windows 设计,并提供对应平台的基本建议。
按以下分类扫描。使用 PowerShell 脚本 scripts/scan_disk.txt(见下方说明),或直接在终端执行等效命令。
扫描结果分为三个安全等级:
这些删了不会丢失任何用户数据,最多影响一些加载速度(缓存会自动重建):
类别典型路径说明Windows 临时文件%TEMP%, C:\Windows\Temp系统和用户临时文件Windows Update 缓存C:\Windows\SoftwareDistribution\Download已安装更新的安装包缩略图缓存%LOCALAPPDATA%\Microsoft\Windows\Explorer\thumbcache_*文件预览缩略图系统日志C:\Windows\Logs 中的旧日志超过30天的日志回收站回收站已删除的文件Windows 错误报告%LOCALAPPDATA%\CrashDumps, C:\ProgramData\Microsoft\Windows\WER崩溃转储和错误报告npm 缓存%APPDATA%\npm-cacheNode.js 包缓存pip 缓存%LOCALAPPDATA%\pip\cachePython 包缓存conda 包缓存%USERPROFILE%\.conda\pkgs 中的 .tar.bz2/ .conda 文件已解压的包的压缩档NuGet 缓存%LOCALAPPDATA%\NuGet\v3-cache.NET 包缓存Gradle 缓存%USERPROFILE%\.gradle\cachesJava/Gradle 构建缓存Maven 本地仓库%USERPROFILE%\.m2\repository (需谨慎,标记为黄色如果有本地发布的包)Maven 依赖缓存Docker 未使用资源docker system df 检查悬空镜像、停止的容器、未使用的卷浏览器缓存各浏览器缓存目录Chrome/Edge/Firefox 缓存
删除前必须逐项或分组展示,让用户选择:
类别典型路径说明下载文件夹%USERPROFILE%\Downloads按修改时间排序,展示大文件桌面大文件%USERPROFILE%\Desktop超过 100MB 的文件大文件扫描各用户目录全盘超过 500MB 的文件(排除系统目录)旧版 WindowsC:\Windows.old系统升级残留(可能很大)重复文件用户目录内基于文件大小+部分哈希的重复检测node_modules项目目录中的 node_modules长期未访问的项目的依赖虚拟环境.venv, venv, .conda/envs长期未使用的 Python/Conda 环境
以下路径绝不扫描、绝不建议删除:
C:\Windows\ (系统核心目录,SoftwareDistribution\Download 除外)C:\Program Files\, C:\Program Files (x86)\C:\ProgramData\(除明确的缓存子目录外).git 目录扫描完成后,生成一个 HTML 报告文件。报告要做到:
报告使用 scripts/generate_report.py 生成(读取扫描结果 JSON,输出 HTML)。
如果无法生成 HTML(比如环境限制),可在终端中以表格形式展示结果,分三个安全等级列出,逐项询问。
根据用户选择,按以下规则执行:
用户确认后,一次性执行所有安全项的清理:
powershell
# 示例:清理临时文件
Remove-Item -Path "$env:TEMP\*" -Recurse -Force -ErrorAction SilentlyContinue
# 示例:清理 npm 缓存
npm cache clean --force
# 示例:清理 pip 缓存
pip cache purge
# 示例:Docker 清理
docker system prune -f
优先使用工具自带的清理命令(如 npm cache clean、 pip cache purge、 docker system prune、 conda clean --all),而不是直接 Remove-Item。这样更安全,工具自己知道什么该删什么不该删。
对于🟡类别的项目:
清理完成后,再次显示磁盘空间变化:
powershell
# 显示清理前后对比
"清理前可用空间: $beforeFree GB"
"清理后可用空间: $afterFree GB"
"本次释放空间: $($afterFree - $beforeFree) GB"
主扫描脚本(PowerShell),文件扩展名为 .txt 以兼容 ClawHub 注册表的文件类型限制,实际内容是标准的 PowerShell 脚本。
使用方式:读取此文件内容,另存为 scan_disk.ps1,然后执行:
powershell
# 默认扫描系统盘
.\scan_disk.ps1
# 指定盘符
.\scan_disk.ps1 -Drive "D:"
# 指定输出路径和大文件数量
.\scan_disk.ps1 -Drive "C:" -OutputPath ".\result.json" -TopN 100
或者直接在终端中按脚本内容逐段执行等效命令。
脚本功能:
报告生成脚本(Python),负责:
用法:
bash
python scripts/generate_report.py scan_result.json -o cleanup_report.html
各平台上已知的安全清理路径清单和注意事项,扫描前可参考。
npm cache clean 就不用 Remove-Item