2010-11-18 53 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

相關問題