3

编程时,我发现使用 Finder 浏览目录很方便。在过去,我经常发现自己想要一种简单的方法来将所选文件的完整路径复制到粘贴板(剪贴板),这是 Finder 所缺乏的(从 OSX v10.8.2 开始)。因此,作为一名程序员,我通过添加一个 Automator 工作流程来添加所需的功能,该工作流程在 Finder 中右键单击所选文件时出现的文件上下文菜单中启动一个简单的 Applescript。

剧本很好用!它添加了所需的功能并且使用方便。但是,我想将一些行为添加到脚本中,但我还没有弄清楚如何去做。启动工作流程的 Finder 上下文菜单项的名称是“复制文件名”,这在只选择一个文件但选择多个文件时很好,我希望名称菜单项更改为“复制文件名”或者也许“复制”+(选定文件的数量)+“文件名”。

所以我的问题是:我如何使用Applescript根据所选文件的数量在Finder中右键单击所选文件时出现的文件上下文菜单中动态设置项目的名称?

这种行为有一些先例。在 Finder 中复制选定文件时可以看到。如果只选择了一个文件,则上下文菜单中的复制菜单项将显示为Copy "somefile.txt",但如果选择了五个文件,则复制菜单项将显示为Copy 5 Items

4

1 回答 1

2

你不能。好吧,你可以,但它真的很恶心,可能不值得努力。菜单中显示的名称存储在工作流程内的 Info.plist 文件中,因此理论上您可以编写一个监视脚本来监视 Finder 选择并适当地旋转该文件,然后调用魔术函数NSUpdateDynamicServices(),您将为此需要 AppleScriptObjC。(或者您可以杀死并重新启动 Finder,但每次更改 Finder 选择时都这样做是不切实际的。)

一个有趣的增强请求是一种命名服务工作流的方法,以便名称反映选择,因此您将工作流命名为“从 % 复制路径”,系统将替换为“foo.txt”或“5 个项目”或者你有什么自动。

还值得注意的是,Finder 实际上在某种程度上确实处理了完整路径。尝试将文件拖到纯文本文档中——您将获得路径。或者尝试复制并粘贴到终端,它知道粘贴板上的“毛茸茸”的味道。

于 2013-04-05T01:56:07.013 回答