我想在 finder 上下文菜单中添加一个选项,该菜单调用hg add %1
%1 是 finder 中所选文件的完整路径。
当然,我还能想到更多有用的案例,以添加到上下文菜单中。
有没有一种简单的方法可以做到这一点,它不涉及安装任何 3rd 方软件或以编译语言编码和构建二进制插件?
就像使用脚本编辑器创建脚本并将其放入/Library/Contextual Menu Items/
?
3 回答
自从@khachik 的正确答案以来,Snow Leopard/10.6+ 的步骤已经改变。为确保其清晰,以下是步骤:
- 打开自动机
- 创建一个新的
Service
- 将顶部的顶部两个下拉菜单设置为“服务接收
files or folders
在中选择Finder.app
” - 将 Pass 输入设置为
as arguments
- 编写你的脚本(见下文)。
- 保存并选择服务名称
您的 Automator 窗口应如下所示:
您现在可以在 Finder 中选择多个文件,然后从“服务”子菜单中执行您的服务。
对于您的脚本,我认为您需要以下内容。这将更改为每个参数的目录,然后添加它。我正在使用 for 循环,因为 Finder 允许您选择不同文件夹中的多个文件(可能位于不同的存储库中)。
for f in "$@"
do
cd $(dirname $f); hg add $f
done
如果您假设它们都在同一个存储库中,您可以这样做:
cd $(dirname $1); hg add $@
打开 Automator,创建自定义工作流程。从Library
选择Utilites
,然后拖放Run shell script
到工作流。设置Pass input
为As arguments
。写在你的脚本中:hg add $1
. 然后File menu->Save as a Plugin
,指定名称,选择plugin for Finder
, Save
。右键单击该文件,选择More->Autamator-><PLUGIN_NAME>
.
是的,我知道这是第三方软件 - 但为了更全面地了解 - http://www.abracode.com/free/cmworkshop/on_my_command.html。另一个使您的脚本编写更容易的工具是http://wafflesoftware.net/thisservice/将项目添加到服务菜单。