..

如何删除 Zotero 中的 extra 字段


本文方法来源于 Zotero 论坛

原帖地址:https://forums.zotero.org/discussion/87190/sql-script-to-clear-contents-of-extra-fields

为什么要删除?

Zotero 的各种插件经常在 extra 字段里面添加信息,而删除插件并不会清除这些信息。久而久之 extra 字段里面的内容就会越积越多,影响引用。

如何删除

  • 打开 Zotero - Tools - Developer - Run JavaScript



  • 运行如下代码
var fieldName = "extra";
var newValue = "";

var fieldID = Zotero.ItemFields.getID(fieldName);
var s = new Zotero.Search();
s.libraryID = ZoteroPane.getSelectedLibraryID();

var ids = await s.search();
if (!ids.length) {
return "No items found";
}

await Zotero.DB.executeTransaction(async function () {
for (let id of ids) {
let item = await Zotero.Items.getAsync(id);
let mappedFieldID = Zotero.ItemFields.getFieldIDFromTypeAndBase(item.itemTypeID, fieldName);
item.setField(mappedFieldID ? mappedFieldID : fieldID, newValue);
await item.save();
}

});
return ids.length + " item(s) updated";


  • 等待完成即可!


请注意 extra 字段一旦删除则无法恢复,操作前请务必备份确认已经不存在自己需要的信息再执行删除。


back to ⬅️notes⬆️top