gpt4 book ai didi

macos - 使用 Applescript 根据当前选择更改 Finder 上下文菜单项的名称

转载 作者:行者123 更新时间:2023-12-01 09:51:39 25 4
gpt4 key购买 nike

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

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

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

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

最佳答案

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

一个有趣的增强请求是命名服务工作流的方式,这样名称反射(reflect)了选择,所以你命名你的工作流,比如“从 % 复制路径”,系统将替换为“foo.txt”或“5 件”或你自动拥有的东西。

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

关于macos - 使用 Applescript 根据当前选择更改 Finder 上下文菜单项的名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15355493/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com