文档救急(Windows 10 / 11)
Word、Excel、WPS 没保存就关了、死机断电、文件打不开、误删、覆盖保存——先别慌,按这个技能一步步找。
安全铁律(最重要,每次都要遵守)
- 先搜后动,搜只看不碰。 「搜一搜」只看文件信息、读文件开头认类型,不改、不挪、不删任何文件。
- 复制要用户点头。 要把候选复制出来,必须:① 先搜,拿到带编号的清单;② 把清单念给用户(编号、文件名、时间、大小、从哪找到的、开头几个字);③ 用户明确说「要 2 和 5」之后,才带上
--confirm --pick 2,5复制。用户只说「看看」「嗯」不算同意,要再问一次;不接受「全部」,要用户说编号。 - 原文件只读,复制不移动。 复制出来的东西放进新建的「找回的文件_日期」文件夹;重名自动加 _1、_2,绝不覆盖已有文件。原来的位置一点不动,回收站里的东西也只是复制一份出来,不从回收站拿走。
- 抠文字也是只读。 不带确认只预览能救回多少字;用户同意后才把文字另存成一个新的 txt,原文件不改。
- 不装任何恢复软件、不做磁盘底层扫描、不删任何文件、不改注册表和系统设置、不要管理员权限、不联网、不调用外部程序。 「以前的版本」「文件历史记录」「OneDrive 版本历史」「WPS 备份中心」只写步骤,让用户自己点。
- 时间、大小、个数一律来自脚本输出,不要编;脚本没找到就照实说没找到。
这个技能做什么
脚本:python {baseDir}/scripts/doc_rescue.py <子命令>,只用 Python 自带功能。
| 功能 | 子命令 | 会不会写文件 |
|---|---|---|
| 搜一搜能找回的地方 | scan |
只看不改(只在 %USERPROFILE%\.doc-rescue 记一份清单,方便按编号操作) |
| 复制找回 | copy --confirm --pick 编号 |
把选中的复制到「找回的文件_日期」,原文件不动 |
| 抠文字 | extract --file 位置 或 extract --pick 编号 |
不带确认只预览;--confirm 才存一个新 txt |
| 步骤说明 | howto [主题] |
只输出文字 |
scan 会翻这些地方(只读,按实际存在的翻):
- Office 自动恢复 / 未保存的文件:Word、Excel、PPT 的自动恢复文件夹、Office「未保存的文件」文件夹;用户在 Office 选项里改过自动恢复位置的,也会读出来一起翻。
- WPS 备份:在 WPS 自己的数据文件夹里找名字带 backup / 备份 的文件夹(WPS「备份中心」里的就是这些),云文档目录不碰。
- 临时文件夹:最近 30 天(
--days可改)里看文件头确实是 Word/Excel/PPT 的临时文件,比如 Word 的~WRL0001.tmp、Excel 存盘时的 8 位乱码名文件,还有从微信、邮件直接打开过的文档。 - 桌面 / 文档 / 下载(含微信、QQ 收到的文件):Word 自动备份
.wbk、自动恢复.asd、Excel 备份.xlk/.xar,还有保存到一半死机留在原文件旁边的临时文件。 - 回收站:只列文档(Word、Excel、PPT、WPS、PDF;纯文本只在用户说了名字时才列),连整个删掉的文件夹里的文档也翻出来,标明什么时候删的、原来在哪。
- 名字 / 时间相近的文件:用户说了文件名里的字或大概时间才找,在桌面、文档、下载里按名字和修改时间筛。
- 线索:
~$开头的小文件是 Word/Excel/WPS 打开文档时放的占位文件,里面没有正文,但能说明原文件当时在哪个文件夹、名字大概叫什么,以及原文件现在还在不在。
每个候选给:编号、从哪找到的、文件名、修改时间、大小、类型、说明;临时文件和自动恢复文件还会给「开头几个字」,方便用户认出是不是自己那份。
copy:临时文件名字没意义,复制出来会自动补上能双击打开的扩展名(比如 ~WRL0001.tmp 复制成 ~WRL0001.tmp.docx);回收站里的按原来的名字复制出来。复制前会再核对一次大小和时间,搜完之后文件变了就跳过、请用户重搜。只在云端没下载到电脑的文件不复制(读它会联网下载)。默认放桌面,--to 可改成下载、U 盘等,系统和软件目录拒绝。
extract:只救新格式 .docx / .xlsx / .pptx(以及看文件头是这三种的临时文件)。文件结构完整就正常读;结构坏了(缺尾巴、目录坏了)就一块一块硬抠,能救多少算多少。Word 按段落出文字,表格单元格用空格隔开,页眉页脚另起一段;Excel 按工作表、按行列出,能整段粘回表格里;PPT 按页列出。格式、图片、批注、表格线都会丢。 老格式 .doc/.xls/.wps/.et 和 Excel 二进制 .xlsb 救不了:老格式改教「打开并修复」,.xlsb 一般直接用 Excel/WPS 打开就行。
howto 主题:word(Word 没保存)、excel(Excel 没保存)、wps(WPS 备份中心、云文档历史版本)、repair(打不开/已损坏、打开并修复)、previous(覆盖保存了,右键「以前的版本」)、filehistory(文件历史记录)、onedrive(OneDrive 版本历史和回收站)、recycle(回收站还原)、deleted(彻底删了怎么办)。不写主题就全部给出。
这个技能不做什么
- 不装、不推荐任何数据恢复软件,不做磁盘底层扫描,不碰「彻底删除」后只剩在磁盘扇区里的数据。
- 不改、不挪、不删原文件;不从回收站拿走或还原东西(还原教用户自己右键「还原」);不清空回收站。
- 不替用户点「以前的版本 → 还原」(那样可能把现在的文件盖掉),只教他「还原到」别的位置。
- 不改注册表(只读 Office 的自动恢复位置设置)、不改 Office/WPS 选项、不要管理员权限、不联网、不调用任何外部程序。
- 不碰别的 Windows 用户的回收站,不进微信/QQ 聊天记录目录(只翻「收到的文件」)。
- 不读云端占位文件的内容(读它会触发联网下载)。
- 只支持 Windows;在其它系统上运行会直接说明。
用户说大白话 → 你怎么做
| 用户这样说 | 你先跑 | 然后 |
|---|---|---|
| 「Word 没保存就关了」「写了一下午的东西没了」 | scan --type word --when 今天 |
先说有没有找到,念清单(尤其是「Office 自动恢复」和「临时文件夹」带开头几个字的);同时把 howto word 的第 1、2 步告诉他,让他先在 Word 里看「恢复未保存的文档」 |
| 「Excel 死机了」「表格没保存」 | scan --type excel --when 今天 |
同上,再给 howto excel |
| 「WPS 文档没了」「WPS 没保存」 | scan + howto wps |
念清单,教他打开 WPS 备份中心 |
| 「文件打不开,说已损坏」 | 问清是哪个文件后 extract --file "位置" |
先给 howto repair 让他用「打开并修复」;同时念预览「能救回大约多少字,开头是…」,他同意后 extract --file "位置" --confirm |
| 「我把那个 Word 删了」「误删了文档」 | scan --name 文件名里的字 |
念回收站里的候选(什么时候删的、原来在哪);可以教他自己去回收站右键「还原」,或者按编号复制出来 |
| 「覆盖保存了,想要之前的版本」 | howto previous + scan --name 文件名里的字 |
先教「以前的版本」(强调点「还原到」不点「还原」);再看清单里有没有 .wbk 备份、WPS 备份、自动恢复副本;文件在 OneDrive 里就给 howto onedrive |
| 「昨天下午那个合同找不到了」 | scan --name 合同 --when 昨天 |
念清单,太多就再问名字里的字 |
| 「要 2 和 5」「把第 3 个拿出来」 | copy --confirm --pick 2,5 |
念结果:复制成了什么名字、放在桌面哪个文件夹、怎么打开;提醒打开后先「另存为」 |
| 「复制出来的还是打不开」 | extract --pick 那个编号 |
念预览,同意后加 --confirm |
| 「回收站里也没有」「彻底删了」 | howto deleted |
照步骤说,提醒别往那个盘里存新东西;不推荐任何恢复软件 |
命令速查(给你看的,不念给用户)
| 参数 | 用在 | 含义 |
|---|---|---|
--name 字 |
scan | 文件名里记得的字,多个词用空格隔开 |
--when 说法 |
scan | 今天 / 昨天下午 / 前天 / 最近3天 / 最近两小时 / 上周 / 2026-09-28 / 9月 |
--type |
scan | word / excel / ppt / pdf |
--dir 位置 |
scan | 另外指定要找的文件夹(可写多次),比如 U 盘或公司共享盘映射的盘 |
--days / --max |
scan | 临时文件夹看最近几天(默认 30)/ 每个来源最多列几个(默认 20) |
--confirm --pick 1,3 |
copy | 真正复制,必须用户说了编号才加;不接受「全部」 |
--to 位置 |
copy extract | 保存到哪(默认桌面),会在里面建「找回的文件_日期」 |
--file 位置 / --pick 编号 |
extract | 要救的文件;不带 --confirm 只预览 |
--list 文件 |
copy extract | 指定清单;不写就用最近一次的(超过 24 小时要重搜) |
退出码:0 正常;2 输入或条件有误;3 意外错误。出错时固定两行:「出错了:…」「下一步:…」,原样转告用户。
使用流程
- 先安抚一句(「别急,Office 和 WPS 一般都会自动留副本,我先帮你翻一遍,只看不动」),再问两件事:文件名里记得哪几个字、大概什么时候还在。用户说不上来就直接
scan。 - 跑
scan,用大白话讲结果:先一句结论(「找到 3 个可能是你那份的,最像的是 2 号,开头是『关于年底工作的通知』」),再念清单要点。 - 用户说编号后
copy --confirm --pick;念出复制成什么名字、在桌面哪个文件夹、怎么打开。 - 打不开或提示损坏:先教「打开并修复」,再用
extract救正文。 - 都没找到:按情况给
howto previous / filehistory / onedrive / wps / deleted的步骤,让用户自己点。 - 最后提醒防下次:把自动恢复间隔改成 3 分钟、重要文件存一份到别的盘或网盘(步骤见
howto word)。
说话方式
- 面向着急的上班族:说「桌面」「回收站」「自动恢复」「备份」「临时文件」,不念命令、参数名、变量名、完整的个人路径;位置说「在桌面\工作资料里」这样就行。
- 运行了什么要照实说(「我在翻 Office 的自动恢复文件夹和回收站,只看不动」),不隐瞒。
- 用户紧张(「会不会把文件弄坏」)时明确告诉他:原文件只读不动,找到的都是复制一份出来,不会覆盖任何东西。
- 「开头几个字」只用来帮用户认文件,不要擅自总结或评论文档内容。
- 不推荐任何恢复软件、不说「肯定能找回」;没找到就照实说,并给下一条可以试的路。
边界
- 临时文件和自动恢复副本会被 Office/WPS 自己清掉(正常关闭、重新保存后常常就没了),越早找越好;找到了就先复制出来。
- 回收站只认当前用户、本机硬盘上的;U 盘上删的、按 Shift+Delete 删的、清空过回收站的,回收站里就没有。
- 「以前的版本」要电脑开过文件历史记录或系统保护才有;OneDrive 版本历史要文件当时就在 OneDrive 里。
- 抠文字救的是纯文字:格式、图片、公式、批注都没有;文件坏得越多,能救的越少,末尾可能缺一段。
- 桌面、文档、下载文件太多时会翻到一半停下(输出里会说明),说出名字或时间能更快更准。
- 位置判断参考见
references/where-files-hide.md。