2010-11-18 95 views
10

我想向查找程序上下文菜单添加一个选项,该选项调用hg add %1,其中%1是查找程序中选定文件的完整路径。
当然,还有更多有用的案例可以考虑添加到上下文菜单中。
有没有简单的方法来做到这一点,不涉及以编译语言安装任何第三方软件或编码和构建二进制插件?
就像使用脚本编辑器创建脚本并将其放入/Library/Contextual Menu Items/将脚本添加到MacOS查找程序上下文菜单

+1

嗯......开放的Automator,创建一个自定义工作流。从'Library'选择'Utilites',然后将'Run shell script'拖放到工作流程中。设置'传入输入'为'作为参数'。写入你的脚本:'hg add $ 1'。然后在文件菜单 - >保存一个插件,指定名称,为Finder选择插件,保存。右键单击该文件,选择更多 - > Autamator->并享受。但是这里没有关于编程的任何内容...... – khachik 2010-11-18 13:50:52

+0

@khachik:它仍然是与开发相关的。你应该让你的评论成为答案。 – 2010-11-18 14:15:56

+0

@菲利普好的,这实际上是一个答案... – khachik 2010-11-18 14:22:38

回答

15

打开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>

+0

哇,很好的解释。虽然我找不到如何保存为插件,但我唯一的选择是工作流程或应用程序。我正在运行OS 10.6.4 – Petruza 2010-11-18 14:34:32

+0

Automator中的'File'菜单中没有'Save as a Plugin ...'项目?我正在运行豹,它在那里......我相信即使它没有“另存为插件”,也应该有相同的东西。 – khachik 2010-11-18 14:38:03

+1

好吧,我发现现在在10.6中称为服务,但它是一样的。我设法创建它,工作正常,谢谢!现在问题是我需要'cd'到%1文件的路径,你介意告诉我如何得到这个?谢谢! – Petruza 2010-11-18 15:10:22

17

从@ khachik的正确答案开始,Snow Leopard/10.6 +的步骤已经发生了变化。为了确保其清晰的,这里的步骤:

  • 开放的Automator
  • 创建一个新的Service
  • 在顶部设置前两个下拉菜单,以“服务接收选择在Finder.appfiles or folders
  • 设置传递输入为as arguments
  • 编写您的脚本(请参阅下面的说明)。
  • 保存并选择服务名称

你的Automator窗口看起来应该像这样: :screenshot

您现在可以选择在Finder中的多个文件,然后从服务子菜单中执行您服务。

对于您的脚本,我认为您需要以下内容。这将更改为每个参数的目录然后添加它。我正在使用for循环,因为Finder允许您选择不同文件夹中的多个文件(可能位于不同的存储库中)。

for f in "[email protected]" 
do 
    cd $(dirname $f); hg add $f 
done 

如果你认为他们都在,你能做到这一点同一个资源库:

cd $(dirname $1); hg add [email protected] 
+1

Automator在一个环境中运行脚本,该环境设置/ etc/paths中定义的路径(也许还有别的东西),但它不会调用你的〜/ .bash_profile --->所以如果你有一些路径定义需要从Automator脚本中找到要执行的脚本/程序,您必须使用完整路径或将“source〜/ .bash_profile”(不带引号)添加为脚本的第一行 – georg 2012-12-19 21:21:25

相关问题