我相信很多人都希望在启动 Mac 上的办公应用程序时能够清除之前打开的文件列表。

image

当然,可以逐个删除文件链接,但如果文件链接太多,删除起来会花费很多时间。

我花了很长时间搜索这个问题的信息,并找到了一个建议删除这些文件:

com.microsoft.Excel.securebookmarks.plist
com.microsoft.Word.securebookmarks.plist
com.microsoft.PowerPoint.securebookmarks.plist

如上所述,假设在这里,但在最新的 Mac 版 MS Office 版本中不起作用!

所以微软现在在哪里存储最近打开文件的列表?

在网上搜索相关信息时,我遇到了一位微软员工的建议,建议用户删除 MicrosoftRegistrationDB.reg 文件,虽然据说所有 Office 应用程序设置和最近文件列表都会被删除……:汗颜:

不幸的是,无法使用帖子中提供的路径找到它,但我找到了一个别名 MicrosoftRegistrationDB.reg ,我认为它指向的是每个用户唯一的文件 MicrosoftRegistrationDB_xxxxxxxxxxxx.reg (其中 x 是一串数字),第二种快速找到该文件的方法可能是直接进入路径 ~/Library/Group Containers/UBF8T346G9.Office/MicrosoftRegistrationDB

所以这个文件只是一个 SQLite 格式的数据库。 然后就是花时间去理解它是如何存储最近文件记录的,以及如何删除它们。

因此,我提交了一个请求以删除与最近打开的文件相关的记录:

DELETE from "HKEY_CURRENT_USER_values" where node_id in (SELECT node_id FROM "HKEY_CURRENT_USER_values" WHERE name="path")

一次性清空整个列表的操作如下:

  1. 打开 Finder,然后在“前往”菜单中选择“前往文件夹”,并插入相应的路径:
CPUPath路径File name文件名
Intel英特尔~/Library/Group Containers/UBF8T346G9.Office/MicrosoftRegistrationDBMicrosoftRegistrationDB_xxxxxxxxxxxx.reg
Apple Silicon~/Library/Group Containers/UBF8T346G9.Office/MicrosoftRegistrationDB.reg
  1. 在上面的表格中找到带有 .reg 扩展名的文件。
  2. 打开终端并输入: sqllite3 按 Space 并将文件从 Finder 中拖放到终端窗口中并按 Enter ,SQLite 将启动并打开数据库。通过输入 .tables ,你可以看到以下输出:

image

  1. 你可以通过以下请求检查数据库是否包含你最近打开的文件:

select * from HKEY_CURRENT_USER_values where node_id in (SELECT node_id FROM HKEY_CURRENT_USER_values WHERE name='path');[^1]

image

  1. 你可以通过以下查询清除这个列表:

DELETE from "HKEY_CURRENT_USER_values" where node_id in (SELECT node_id FROM "HKEY_CURRENT_USER_values" WHERE name="path");

image

  1. 使用 .quit 命令关闭 SQLite。

image

  1. 启动 Word、Excel、PowerPoint 并享受结果!

用于使用数据库查询删除…

PS 你可以修改请求,仅删除特定应用程序的最后一个打开的文档,为此,你需要在“Value”字段的请求中添加一个条件:

Delete From HKEY_CURRENT_USER_values where node_id in (SELECT node_id FROM HKEY_CURRENT_USER_values WHERE value='Word');

或删除所有内容,仅保留固定项:

Delete from "HKEY_CURRENT_USER_values" where node_id in (SELECT node_id FROM "HKEY_CURRENT_USER_values" WHERE name = 'IsPinned' and value = 0);