2

我正在编写一个applescript,它使用一个名为“查找笔记”的命令(在 Evernote 词典中的 Evernote 套件中)与 Evernote for Mac 进行交互。这是我的脚本:

tell application "Evernote"
set myNotes to find notes ("intitle:Title")
end tell

如果我在 Evernote 已经打开的情况下运行脚本,它工作得很好,但如果在我运行脚本时 Evernote 尚未打开,它会给我一个错误:“预期行尾,但找到标识符。” 第二行中的单词“notes”被突出显示。

无论我是从 AppleScript Editor 还是作为 shell osascript 运行它,它的行为都是一样的。

它似乎将“find”解析为一个完整的动词,而不仅仅是动词“find notes”的一部分。但如果 Evernote 是打开的,那么它会识别完整的动词并正常工作。

有没有什么办法可以让它作为脚本(未编译)在安装了 Evernote 但可能运行也可能不运行的环境中运行?

4

2 回答 2

3

我相信这是因为当您不提供特定名称时,它会匹配(正常运行的)EvernoteHelper 应用程序。

我认为只要你在编译时运行 Evernote 本身,正确的引用就会出现在脚本中,因此编译后的脚本应该在运行时启动 Evernote 而不是 EvernoteHelper。

您可能会发现使用包标识符“com.evernote.Evernote”而不是应用程序的硬编码路径也可以:

tell application id "com.evernote.Evernote"

(注意“id”部分。)

于 2013-09-05T23:32:46.913 回答
0

如果其他人遇到同样的问题,如果我指定应用程序的完整路径而不仅仅是名称,它似乎可以解决它。所以:

tell application "/Applications/Evernote.app"
于 2013-09-05T23:19:51.567 回答