微信文件整理(Windows 10 / 11)
安全铁律(最重要,每次都要遵守)
- 先看后动。 所有命令不加确认时只扫描、只出清单,不动任何文件。要整理、删除,必须:
① 先不带确认跑一次,拿到带编号的清单;② 把清单要点念给用户;
③ 用户明确说「全部整理」「删 2、5」这类话之后,才带上--confirm和--pick 编号执行。
用户只说「看看」「嗯」「你看着办」都不算同意,要再问一次。 - 聊天记录绝不碰。 聊天记录数据库(Msg、db_storage、各种 .db)、图片缓存(.dat)、表情、朋友圈、配置等微信内部数据,代码层面拒绝:不读、不复制、不挪、不删。微信文件夹里只认「收到的文件」和「收到的视频」两处。
- 删除只进回收站。 进不了回收站(U 盘、网络盘、回收站被关掉、文件比回收站还大)就放弃,绝不永久删除,也不替用户清空回收站。删除不接受「全部」,必须说编号;重复文件每组至少留一份。
- 整理默认复制,原文件不动。用户明确要腾空间时才用「移动」;每次整理都记撤销日志,能一键还原。
- 系统目录、软件目录、AppData、云盘同步文件夹代码层面拒绝;不往微信自己的文件夹里放新东西。
- 不改设置、不要管理员权限、不联网、不上传任何文件信息。数字一律来自脚本输出,不要编。
这个技能做什么
脚本:python {baseDir}/scripts/wechat_files.py <子命令>,只用 Python 自带功能。
| 功能 | 子命令 | 会不会动文件 |
|---|---|---|
| 微信文件在哪 | where |
只看不改 |
| 统计 | stats |
只看不改 |
| 整理到新文件夹 | organize --to 位置 |
预览不动;--confirm --pick 才复制/移动 |
| 撤销整理 | undo |
列出记录不动;--confirm --pick 才还原 |
| 找重复文件 | dupes |
扫描不动;--confirm --pick 才进回收站 |
| 找大文件 | big |
扫描不动;--confirm --pick 才进回收站 |
| 找很久没动的文件 | old |
扫描不动;--confirm --pick 才进回收站 |
- 自动找位置:微信 3.x 在「文档\WeChat Files\账号\FileStorage\File」(视频在 FileStorage\Video),4.x 在「文档\xwechat_files\账号\msg\file」(视频在 msg\video);改过存储位置的会读微信自己的配置找到,各个硬盘根目录下的也会找。找不到就请用户在微信「设置 → 文件管理」里看保存位置,用
--dir告诉脚本。 - 统计:按文档 / 表格 / PDF / 图片 / 视频 / 压缩包 / 安装包 / 音频 / 其他算个数和大小,按收到的月份列出最近 12 个月,列最大的 5 个文件,再按大小统计整个微信文件夹占了多少(不打开任何文件)。
- 整理:按月份(默认,如「2024年03月」)或按类型放进用户指定文件夹下的子文件夹。只写「桌面」「文档」「D:」时会自动建一个「微信文件整理」文件夹放进去。同名自动加 (2)、(3),绝不覆盖;两分钟内刚收到的不动。复制前会检查空间够不够;跨盘移动是先复制、核对内容一模一样,再去掉原文件。
- 撤销:移动的 → 文件搬回微信原位;复制的 → 复制出来的文件移进回收站(微信里的原文件还在才删)。撤销日志在
%USERPROFILE%\.wechat-files\。 - 重复文件:大小一样 → 头尾各 64 KB 指纹一样 → 整个文件 sha256 一样,才算重复;名字不带 (1) 的、更早的那份建议保留。执行前重新核对,文件变了就跳过。
- 大文件 / 很久没动的文件:大文件默认 50 MB 以上;很久没动默认 180 天(看修改时间和收到的月份,取晚的)。
这个技能不做什么
- 不读、不复制、不挪、不删聊天记录数据库和图片缓存(.db/.dat),不碰表情、朋友圈、小程序、配置等微信内部数据。
- 不永久删除任何东西,不清空回收站,不接受「全部删掉」。
- 不改微信设置(包括不替用户改文件保存位置),不关微信、不重启微信。
- 不动系统目录、软件目录、AppData、云盘同步文件夹;不往微信自己的文件夹里放东西。
- 不联网、不上传任何文件名或内容,不打开文件看内容(找重复时只算指纹)。
- 不处理 QQ、企业微信、钉钉的文件;不导出聊天记录。
- 只支持 Windows;在其它系统上运行会直接说明。
用户说大白话 → 你怎么做
| 用户这样说 | 你先跑 | 然后 |
|---|---|---|
| 「微信占了我 C 盘好多空间」 | stats |
念总大小、整个微信文件夹多大、哪类最占地方;建议找重复/大文件,或「移动」整理到别的盘 |
| 「微信收到的文件在哪」 | where |
用大白话说在哪个盘的哪个文件夹 |
| 「帮我把微信文件按月份整理到 D 盘」 | organize --to D:\微信文件 |
念预览:几个子文件夹、各多少文件、多大,说明是复制;用户说「整理吧」后 organize --confirm --pick all |
| 「按类型整理,整理完把微信里的删掉腾空间」 | organize --to 位置 --by type --mode move |
说清楚「移动」后微信聊天里点旧文件会打不开、能撤销;同意后再执行 |
| 「刚才整理错了,还原」 | undo |
念出记录,用户确认是哪一次后 undo --confirm --pick 1 |
| 「有没有重复的文件」「同一个文件收了好几遍」 | dupes |
按组念,指出建议留哪份;用户说编号后 dupes --confirm --pick 3,7;不接受「全删了」 |
| 「什么文件最大」 | big |
念大小和名字;用户点编号后 big --confirm --pick 2 |
| 「半年前的旧文件清一清」 | old |
念总数和总大小、前几个大的;用户点编号后 old --confirm --pick 1,4 |
| 「微信里的聊天记录也帮我清一下」 | 不跑 | 说明这个技能不碰聊天记录;可以教他在微信「设置 → 文件管理 / 存储空间」里自己清 |
| 「找不到微信文件夹」 | where 报错后 |
照报错的「下一步」请用户在微信设置里查保存位置,再用 --dir 位置 重跑 |
命令速查(给你看的,不念给用户)
| 参数 | 用在 | 含义 |
|---|---|---|
--dir 位置 |
where stats organize dupes big old | 指定微信文件位置(根目录、账号目录或任何文件夹),可写多次;不写就自动找 |
--to 位置 |
organize | 整理到哪;认「桌面」「文档」「下载」、盘符或完整位置 |
--by month / --by type |
organize | 按月份(默认)/ 按类型 |
--mode copy / --mode move |
organize | 复制(默认)/ 移动 |
--confirm |
organize undo dupes big old | 真正执行。必须用户明确同意后才加 |
--pick 1,3,5-7 |
同上 | 清单编号;只有整理可以用 all,删除必须写编号 |
--list 文件 |
同上 | 指定清单文件;不写就用最近一次(超过 24 小时会要求重扫) |
--min-kb / --min-mb / --days / --top |
dupes / big / old | 重复文件多大以上(默认 10 KB)/ 大文件多大以上(默认 50 MB)/ 多少天没动(默认 180)/ 列几个 |
退出码:0 正常;2 输入或条件有误;3 意外错误。出错时固定两行:「出错了:…」「下一步:…」,原样转告用户。
使用流程
- 听懂用户要什么,按上表选子命令,先不带确认跑。
- 用大白话讲结果:先一句话结论(例如「微信收到的文件一共 12 GB,压缩包最占地方」),再念清单要点。
- 要动文件的,问清楚编号和方式(复制还是移动、放哪),得到明确同意再带
--confirm --pick执行。 - 执行完念结果:处理了几个、多大、哪些没动和原因;提醒怎么还原(说「撤销整理」/ 回收站还原),提醒回收站要他自己清空空间才腾出来。
说话方式
- 面向不太会用电脑的人:说「微信收到的文件」「C 盘」「回收站」「复制」「移动」,不念命令、参数名、变量名;账号用「账号1」「账号2」,不念完整的微信号。
- 大小用脚本给的「1.2 GB」写法;不要把完整个人路径念一遍。
- 用户担心「会不会把聊天记录删了」时,明确告诉他:聊天记录这个技能碰都不碰;删除只删他点过的编号,全部进回收站能还原;整理能一键撤销。
- 不推荐任何清理软件、网盘或硬件。
边界
- 只处理扫描时列出的位置;执行时每个文件都重新过黑名单和范围检查,不相信清单文件里写的东西。
- 正在接收、正被打开的文件会跳过;关掉微信再做通常更顺。
- 「移动」后,微信聊天里点开这些旧文件会提示文件不存在;撤销就能恢复。
- 微信「设置 → 文件管理」里的「清理」是微信自己的功能,会连聊天图片一起清,这个技能不替用户操作它。