Zotero怎么批量替换附件文件路径
使用场景
多台电脑,Zotero本身的同步容量仅有300MB,加上我自己是MAC+WIN双用户,实验室电脑WIN,自己用的mac,因此我选择将Zotero中的所有pdf文件都保存在icloud中,icloud有5GB对比Zotero来说够用了,你也可以用坚果云。所以同步策略为:
**Zotero300MB容量 **:仅同步目录结构和笔记,300MB远远足够了
**iCloud5GB容量 **:同步对应的PDF论文文件
存在问题
由于我平时都在实验室用WIN电脑,所以我Zotero云端存储的都是WIN路径,而我现在想要在MAC上看论文,需要在MAC上进行配置。
MAC和WIN电脑的PDF附件路径肯定是不一样的,因此需要批量替换。
替换思路
主要参考:https://zhuanlan.zhihu.com/p/437714189。
思路:
- 数据库替换 ,修改Zotero本地数据库文件路径,前提是保证两个电脑上Zotero文件夹结构有共同的父路径,这样替换仅需一次
- 使用的工具 ,SQLiteStudio:https://github.com/pawelsalawa/sqlitestudio/releases,优点是开源,多平台,你可以用别的:
替换步骤
- 安装好SQLiteStudio之后,用SQLiteStudio打开本地的zotero.sqlite文件(提前关闭Zotero软件,否者数据库被锁定了无法修改) ,修在mac上直接搜索即可,例如我的路径为/Users/cheng/Zotero/zotero.sqlite:
- 打开附件对应的表 ,打开数据库后,下拉选择“itemAttachments“,这是附件的信息。修改路径在”path“列,见下图:
- 确定要替换的前后路径 ,如我的WIN电脑上所有的文件都在:C:\Users\cheng\papers,而我的MAC电脑的PDF都在路径/Users/cheng/Desktop/VIP/papers目录下,还要注意的是MAC和WIN对目录的符号不一样,如WIN是\,而MAC是/
- 执行SQL语句进行替换 ,打开SQL编辑器,运行命令:
update itemAttachments set path = replace(path,'C:\Users\cheng\papers','/Users/cheng/Desktop/VIP/papers') where path like '%C:\Users\cheng\papers%'
,点击执行按钮
5.是否跨操作系统 ,打如果这个时候你两台电脑都是MAC或者都是WIN的话,你的路径已经替换完成,可以像保存WORD一样,control+S然后退出软件,去打开Zotero既可以正常使用。
但是如果你跨系统的话,还需要再替换一次,将\替换为/,或者反之。
然后再执行一次命令即可:如我的WIN转MAC需要再替换一次update itemAttachments set path = replace(path,'\','/') where path like '%/Users/cheng/Desktop/VIP/papers%'
。注意这里的路径是你的本机的新路径,因为之前已经替换过一次了。如果是mac到WIN的话,把\和/的顺序调换即可。