Applescript 如何删除evernote中注释的最后一行?
我想删除evernote中每个音符的最后一行。 使用shell脚本很容易,例如,使用wc获取注释的长度,然后使用head打印除最后一行之外的所有行,或者使用sed。 但是我找不到一种方法将便条的内容流到shell中。 我试过这个(还有很多其他的)Applescript 如何删除evernote中注释的最后一行?,applescript,evernote,Applescript,Evernote,我想删除evernote中每个音符的最后一行。 使用shell脚本很容易,例如,使用wc获取注释的长度,然后使用head打印除最后一行之外的所有行,或者使用sed。 但是我找不到一种方法将便条的内容流到shell中。 我试过这个(还有很多其他的) do shell script“echo这不是一个解决方案。它是不适合注释行的指导/建议。 你的任务比看上去复杂得多。你有两大挑战需要克服: (1) 删除用户文本的最后一行(与ENML文本的最后一行相反) (2) 更新现有注释ENML #1是可以克服的
do shell script“echo这不是一个解决方案。它是不适合注释行的指导/建议。
你的任务比看上去复杂得多。你有两大挑战需要克服:
(1) 删除用户文本的最后一行(与ENML文本的最后一行相反)
(2) 更新现有注释ENML
#1
是可以克服的。ENML文本的最后一行包含您不想删除的XML标记。它与您在Evernote应用程序中查看的最后一行用户文本不同。下面是一个示例ENML文本,它有3行文本。最后一行用户嵌入在最后一行ENML中,该行有多个标记
2019-02-02 21:47 GMT-6
这是一个测试。
一个两个 三个
这是最后一行。
#2
是一个巨大的挑战。您可以通过脚本更改Note HTML,但不能更改Note ENML。HTML将不包含任何对嵌入图像和附件的引用。我看到的唯一解决方法是编辑隐藏在~/Library/Application Support/com.Evernote.Eve中的Evernote数据文件夹中的实际文件rnote
文件夹(称为“Evernote数据库文件夹”)。oth,如果要使用修改后的ENML文本创建新注释,则可以轻松完成。从脚本编辑器打开Evernote脚本字典,查看可用的内容
如果您只是想创建一个新的便笺,请更新您的问题,以表明这样做
如果明天我有更多的时间,我将进一步检查
更新2019-02-03 18:17 GMT-6
现在OP已经声明他只能使用HTML
2019-02-02 21:47 GMT-6
参考:
这是一个测试。
一个 两个 三个
这是最后一行。
好的,这是我使用Evernote便笺的HTML的解决方案。
注意:备注中的任何图像或附件都可能丢失
将其作为注释的HTML:
2019-02-02 21:47 GMT-6
参考:
这是一个测试。
一个 两个 三个
这是XY、AB和/dir1/dir2/file.text路径的最后一行。
哇,感谢您已经提出了详细的建议。我只是随机选择了ENML格式。因此,如果更改HTML更容易,那当然是可能的。Using HTML更简单。您可以使用HTML获取并设置注释正文。我们可以使用正则表达式删除最后一行用户文本,但如果我们必须考虑其他内容(如
),这将是一个比我想象的更大的挑战课文结束后。你可以发布一个真实的例子,说明你想删除最后一行用户的EN注释的HTML。我会用我正在使用的例子更新我的以上答案。嗨,Michael,非常感谢你的帮助,非常感谢。不幸的是,它还没有起作用。这里是文章的最后几行h由脚本拾取。它们在脚本前后完全相同。
bear使用的Evernote标记:
顺便说一句。文本“Evernote tags to used by bear:”后跟一些标记,是我要删除的行。这可以使正则表达式变得更简单。但无论我如何尝试,该行都不会被删除。
tell application "Evernote"
set noteList to find notes ""
repeat with i from 1 to number of items in noteList
set this_note to item i of noteList
set this_note_text to ENML content of this_note
my removeLastLine(this_note_text)
end repeat
end tell
on removeLastLine(note)
set countCmd to "wc <<< " & note
(* do shell script countCmd *)
set noteText to note as string
log noteText
do shell script "echo <<<" & noteText
(* set newNote to do shell script "head -(size - 1)" *)
end removeLastLine