我製作了一個AppleScript,並將其保存為文件在硬盤驅動器上的特定文件夾中。現在,我想為其分配一個快捷方式,看起來必須通過Automator進行服務,但是 Run AppleScript
要求我將代碼放入其中,而我想執行已經存在的.scpt文件。該怎麼做?
我製作了一個AppleScript,並將其保存為文件在硬盤驅動器上的特定文件夾中。現在,我想為其分配一個快捷方式,看起來必須通過Automator進行服務,但是 Run AppleScript
要求我將代碼放入其中,而我想執行已經存在的.scpt文件。該怎麼做?
是的,Automator是此處的最佳選擇。要創建服務,請按照以下步驟操作:
打開Automator並選擇“服務”:
搜索“ applescript”,然後將操作拖動到右窗格:
更改服務會接收選定的文本
到 Service的輸入未收到
,因此它始終出現在“服務”菜單中:
替換 (*您的腳本在這裡*)
包括:
執行shell腳本“ / usr / bin / osascript /path/to/your/script.scpt”
,如果您想執行現有的 .scpt
文件。請注意, osascript無法像顯示對話框窗口那樣處理用戶交互:
要克服此限制,請使用此替代方法或直接用腳本的內容替換(*您的腳本在這裡*)
。
保存:
如果需要,可以為新服務分配快捷方式。在Finder(或任何打開的應用程序)中選擇“服務”>“服務首選項”:
分配一個不太常用的快捷方式:
現在可以通過上一步中指定的快捷方式從任何應用程序訪問您的服務:
如果您想擺脫該服務,請打開〜/ Library / Services
,刪除該服務並清空垃圾桶:
在腳本中,添加運行時
參數:
運行時-執行腳本結束運行時所做的任何操作
然後,您可以通過 osascript
命令使用Automator的“運行Shell腳本”操作:
osascript /path/to/script.scpt
osascript
是在外殼程序中執行AppleScript的命令。您需要腳本中的行,以允許在AppleScript編輯器之外執行腳本。
我不建議創建Automator服務來為腳本分配快捷方式。 10.7和10.8中存在一個錯誤,其中直到您將鼠標懸停在菜單欄中的服務菜單上時,Automator服務的鍵盤快捷鍵才會始終起作用。在運行服務之前,還有一個相對較長的延遲(可能是0.1到1 s)。
有關為鍵盤分配快捷鍵的其他方法,請參見此答案。我自己使用FastScripts和Alfred。
您可以使用像這樣的簡單自動化服務來運行現有腳本,並像往常一樣從鍵盤快捷方式中分配快捷方式。請記住,某些應用程序可能需要重新啟動才能使用快捷方式。
示例。
sayHello腳本:
說“ hello”
自動服務:
在此示例中使用的是:
操作是運行Shell腳本。該代碼僅使用unix命令 osascript 和文件路徑。 傳遞輸入 可以是 stdn 或論證
,也就是說,腳本不需要執行任何特殊操作。
有關 osascript命令的更多詳細信息,請參見手冊頁。手冊頁提供了另一個示例,您可以在其中向腳本傳遞參數。
要開發服務,您需要某種可以創建服務的軟件,例如以下軟件之一:
以上所有類型的服務都是軟件包。它們都是包含一個plist的文件夾,這些plist指定了服務的屬性。 p>