遇到的问题
想通过datacore语法获取脚本所在文件A的名称,用来从别的目录筛选文件B名称中包含这个A名称的笔记。
现在,只能通过代码获取“当前激活的文件”名称,而是“这个 Datacore 脚本本身所在的那个笔记文件A”的名称。
这样就导致,激活窗口不同,datacore代码筛选的结果会变化。
已尝试的解决方案
网上搜和AI辅助都用过了,没解决了。
哪位大佬知道怎么解决吗?感谢!
想通过datacore语法获取脚本所在文件A的名称,用来从别的目录筛选文件B名称中包含这个A名称的笔记。
现在,只能通过代码获取“当前激活的文件”名称,而是“这个 Datacore 脚本本身所在的那个笔记文件A”的名称。
这样就导致,激活窗口不同,datacore代码筛选的结果会变化。
网上搜和AI辅助都用过了,没解决了。
哪位大佬知道怎么解决吗?感谢!
可以用这个语句来读取当前文件
const current = dc.useCurrentFile();
谢谢 ![]()
以下是AI给的回复:
脚本确实在运行,但——dc.useCurrentFile() 在你当前的运行上下文中返回了 null,所以出现 "未知笔记"。
这是 Datacore 的一个已知限制![]()
在某些情况下(特别是当你使用 Datacore dashboard、视图片段 或 非直接嵌入笔记 时),useCurrentFile() 无法识别“脚本宿主笔记”,返回 null。
我们可以写成多层 fallback(逐级尝试):
dc.useCurrentFile()(脚本所在笔记)dc.currentPage(Datacore 当前上下文)window.app.workspace.getActiveFile()(当前活动文件)'未知笔记'最后,还是window.app.workspace.getActiveFile()生效。
我已经放弃用Datacore了,用了dataview正则表达式实现了我想要的功能。