Install
openclaw skills install @oracis/wechat-file-organizer微信文件自动归类(无头版)——扫描微信接收文件目录,按类型/月份归类、去重、生成报告。零依赖、默认只读(dry-run)、绝不永久删除源文件。扫描逻辑与 GUI 应用 wechat-file-organizer-gui(main.py)同步。
openclaw skills install @oracis/wechat-file-organizer当用户表达以下意图时加载本 skill:
本 skill 调用随附的 scripts/organize.py 完成,无需安装任何第三方依赖。
有图形界面版本:
wechat-file-organizer-gui(GitHuboracis/wechat-file-organizer-gui, Releases 提供 Windowsexe与 macOS.pkg/.zip)。用户只想「点一点」就用 GUI; 本脚本用于无头/定时任务/自动化场景,两者扫描与归类逻辑已同步到同一版本。
pip install。dry-run(只读),绝不改动任何源文件;只有显式加 --apply 才复制。--trash 只会把源文件移入回收站/废纸篓(可恢复),绝不永久删除;Linux 不支持则跳过不删。xwechat_files 与旧版 WeChat Files 可并存),
一次扫齐全部账号,报告与 JSON 标注每个文件属于哪个账号。com.tencent.xinWeChat 容器)。脚本位置:scripts/organize.py(本 skill 目录内)。
# 1) 先看报告(默认只读,安全,自动多账号合并扫描)
python scripts/organize.py
# 2) 按「类型 + 月份」归类并复制(不动源文件,复制到新目录)
python scripts/organize.py --apply --scheme type-month
# 3) 去重后归类(相同内容只留一份)
python scripts/organize.py --apply --dedupe
# 4) 归类后顺手清理源文件(移入回收站,可恢复;Linux 自动跳过)
python scripts/organize.py --apply --trash
# 5) 机器可读输出(定时任务/脚本消费,含账号归属)
python scripts/organize.py --json
# 指定目录(不自动探测时)
python scripts/organize.py --source "/path/to/xwechat_files" --apply
| 参数 | 说明 |
|---|---|
--source DIR | 微信根目录;默认自动探测本机所有微信目录(多账号合并) |
--dest DIR | 归类输出目录;默认在 source 同级建 WeChatFiles_Organized |
--scheme | type(默认)/ month / type-month |
--apply | 真正复制归类(不加则只出报告) |
--trash | 配合 --apply:复制成功后把源文件移入回收站/废纸篓(可恢复,Linux 跳过) |
--dedupe | 去重,相同内容只保留一份(配合 --apply) |
--include-media | 连 Image/Video 的 .dat 也处理(默认跳过) |
--scan-all | 扫描 FileStorage 全部子目录(图片/视频/语音等) |
--top N | 列出最大的前 N 个文件(默认 10,0 关闭) |
--old-days N | 超过 N 天的文件计为老旧(默认 365) |
--json | 输出 JSON(含 accounts 账号列表与逐文件账号归属) |
WECHAT_FILES_DIR 且存在,优先用。~/Documents/xwechat_files(文件在 <账号>/msg/file/YYYY-MM)~/Documents/WeChat Files、Weixin Files(文件在 <账号>/FileStorage/File)~/Library/Containers/com.tencent.xinWeChat/.../com.tencent.xinWeChat/<版本>/<账号哈希>(文件在 Message/MessageTemp/<会话>/File|Image|Video|Audio)~/Documents 下含 FileStorage/msg 特征的目录微信把接收文件按
File/YYYY-MM/文件名(新版为msg/file/YYYY-MM)平铺存放, 所有发送者混在一起,这正是本 skill 要解决的痛点。图片/视频在Image/、Video/里是加密的.dat,默认跳过(可用--include-media/--scan-all纳入)。
| 现象 | 原因 / 处理 |
|---|---|
[FAIL] 找不到微信文件目录 | 微信不在默认位置,用 --source 指定,或设 WECHAT_FILES_DIR |
| 报告里没有图片/视频 | 默认跳过 .dat;加 --scan-all 或 --include-media |
| 想真正移动(而非复制)以腾空间 | 用 --apply --trash:先复制归类,确认无误后再把源文件移入回收站(可恢复) |
| 源文件被误改? | 不会发生——--apply 是复制;--trash 是移入回收站(可恢复),任何平台都不永久删除 |
| 能力 | 无头脚本 organize.py | GUI 应用 main.py |
|---|---|---|
| 目录探测(多根/新版/旧版/mac 沙盒) | ✅ | ✅ |
| 多账号合并扫描 + 账号归属 | ✅ | ✅ |
| 按类型/月份归类、去重 | ✅ | ✅ |
| 清理源文件移入回收站(可恢复) | ✅ --trash | ✅ 界面勾选 |
| 图片缩略图预览 / 向导式界面 / 检查更新 | ❌ | ✅(GUI 独有) |
| 微信加密文件备份(收藏/附件) | ❌ | ✅(GUI 独有) |
两边的扫描/归类/回收站逻辑需保持一致;改动时优先同步
main.py,再回填本脚本。
若 scripts/organize.py 丢失,本 SKILL.md 已完整描述接口与参数;最稳妥的方式是从
源仓库 oracis/wechat-file-organizer-gui 的 main.py 中提取扫描逻辑重建(见上面
「与 GUI 版的关系」对照表)。