自动扫描并清理微信电脑版重复下载的文件
微信电脑版在自动下载文件时,同一份文件被多次下载会产生 报告(1).pdf、报告(2).pdf 这样的重复文件,占用磁盘空间。wechat-dedup 可以自动扫描并删除这些重复文件。
- 🔍 自动发现微信目录 — 无需手动指定路径,自动探测微信下载文件夹
- 🎯 双重验证 — 文件名模式匹配 + SHA-256 内容哈希,绝不误删
- 🗑️ 安全删除 — 默认预览模式,支持移入回收站(可恢复)
- 📊 多种输出 — 支持表格、JSON、CSV 格式
- ⏰ 定时任务 — 一键安装 Windows 计划任务,每天自动清理
- 🌏 中文支持 — 完美处理中文文件名
# 克隆项目
git clone https://github.com/buguoshixc/wechat-cleaner.git
cd wechat-dedup
# 安装
pip install -e .
# 运行
wechat-dedup scan从 Releases 下载 wechat-dedup.exe,放到任意目录,在终端中运行:
wechat-dedup.exe scan# 自动探测微信目录并扫描
wechat-dedup scan
# 指定目录扫描
wechat-dedup scan --paths "D:\Documents\WeChat Files"# 移入回收站(推荐,可恢复)
wechat-dedup scan --use-trash
# 自动确认,无需手动确认
wechat-dedup scan --use-trash -y
# 永久删除(不可恢复)
wechat-dedup scan --permanent -i
# 跳过哈希验证(更快但不安全)
wechat-dedup scan --no-hash# JSON 输出(便于脚本处理)
wechat-dedup scan --output json
# CSV 输出
wechat-dedup scan --output csv# 安装每日凌晨 2:00 自动清理任务
wechat-dedup schedule --install
# 自定义时间
wechat-dedup schedule --install --time "03:00"
# 查看任务状态
wechat-dedup schedule --status
# 卸载定时任务
wechat-dedup schedule --uninstall第 1 层:文件名模式匹配
匹配微信的命名规则:文件名(N).扩展名
| 文件名 | 规范名 | 判定 |
|---|---|---|
报告.pdf |
报告.pdf |
原始文件 |
报告(1).pdf |
报告.pdf |
疑似重复 |
报告(2).pdf |
报告.pdf |
疑似重复 |
第 2 层:内容哈希验证
对疑似重复的文件计算 SHA-256 哈希值,只有内容完全一致才算真重复。
报告(1).pdf (1.2MB, SHA-256: abc123...) ← 与原始一致 → ✓ 真重复
报告(2).pdf (1.2MB, SHA-256: abc123...) ← 与原始一致 → ✓ 真重复
报告(3).pdf (0.8MB, SHA-256: def456...) ← 与原始不同 → ✗ 不是重复,保留
创建 config.json(可参考 config.example.json):
{
"scan_paths": ["D:\\Documents\\WeChat Files"],
"exclude_patterns": ["Msg/**", "Config/**", "*.db"],
"retention_rule": "keep_original",
"deletion": {
"method": "dry_run",
"confirm_each": true
},
"hash_verification": {
"enabled": true,
"algorithm": "sha256"
}
}| 规则 | 说明 |
|---|---|
keep_original |
保留不带 (N) 后缀的文件 |
keep_smallest_index |
保留序号最小的文件 |
keep_newest |
保留最后修改的文件 |
keep_largest |
保留体积最大的文件 |
手动指定扫描路径:
wechat-dedup scan --paths "你的微信下载目录路径"常见微信文件路径:
C:\Users\<用户名>\Documents\WeChat Files\<wxid>\FileStorage\FileD:\Documents\WeChat Files\<wxid>\FileStorage\File
如果使用了 --use-trash(回收站模式),可以在 Windows 回收站中恢复。
可以,通过 --exclude 参数或 config.json 的 exclude_patterns:
wechat-dedup scan --exclude "Video/**" "Image/**"# 克隆项目
git clone https://github.com/buguoshixc/wechat-cleaner.git
cd wechat-dedup
# 安装开发依赖
pip install -e ".[dev]"
# 运行测试
pytest tests/ -v
# 查看帮助
wechat-dedup --helpwechat-dedup/
├── pyproject.toml
├── config.example.json
├── src/wechat_dedup/
│ ├── cli.py # CLI 入口
│ ├── scanner.py # 文件扫描 + 正则匹配
│ ├── hasher.py # SHA-256 内容哈希
│ ├── remover.py # 安全删除
│ ├── reporter.py # 结果输出
│ ├── config.py # 配置管理
│ └── scheduler.py # 定时任务
├── tests/ # 单元测试
└── scripts/ # PowerShell 脚本
MIT © wechat-dedup contributors