代码之家  ›  专栏  ›  技术社区  ›  Petruza

向MacOS finder上下文菜单添加脚本

  •  10
  • Petruza  · 技术社区  · 14 年前

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

    3 回复  |  直到 12 年前
        1
  •  2
  •   Zygmunt    14 年前

    是的,我知道这是第三方软件-但为了更全面的概述- http://www.abracode.com/free/cmworkshop/on_my_command.html . 另一个使脚本编写更容易的工具是 http://wafflesoftware.net/thisservice/ 向服务菜单添加项。

        2
  •  20
  •   studgeek    12 年前

    雪豹/10.6+的步骤已经改变,因为@khachik的答案是正确的。为了确保清楚,以下是步骤:

    • 开放自动机
    • 新建 Service
    • 将顶部的前两个下拉列表设置为“已选择服务接收 files or folders 在里面 Finder.app "
    • 将Pass输入设置为 as arguments
    • 写下你的剧本(见下文)。
    • 保存并选择服务名称

    您的自动机窗口应该如下所示: : screenshot

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

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

    for f in "$@"
    do
        cd $(dirname $f); hg add $f 
    done
    

    如果假设它们都在同一个存储库中,则可以执行以下操作:

    cd $(dirname $1); hg add $@
    
        3
  •  15
  •   khachik    14 年前

    打开自动机,创建自定义工作流。从 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> .