每次我想要运行 AppleScript 时,编辑器就会弹出。
有没有办法直接运行它?
答案1
脚本的保存方式对其在 Mac OS X 中的运行方式有很大影响。听起来您的脚本只是保存为脚本,这就是每次打开脚本时脚本编辑器都会打开的原因。
要解决此问题,请在 AppleScript 编辑器中打开脚本并将其另存为应用程序。这应该能解决问题。
步骤如下(在编辑器中)
文件 > 另存为 > 然后将文件格式设置为应用程序然后保存。
答案2
保存脚本时,您可以从文件格式下拉菜单中选择“应用程序”;然后您将能够运行它,并且您仍然可以将其拖到脚本编辑器来打开脚本;或者您可以选择仅运行,这样它就不会保存可编辑版本。
或者,您也可以osascript
在终端中使用该命令,可以是osascript /path/to/script
或osascript -e "a short script here"
。
答案3
答案4
另一种方法是在 Automator 中创建一个服务,使用osascript
命令在 Finder 中运行 .scpt。
(我没有使用英文版的 Automator,因此措辞可能不准确)
- 启动 Automator
- 文件 > 新建,然后选择服务
- 在“服务接受:”中选择“文件或文件夹”
- 在“位置:”中选择“Finder.app”
- 搜索“运行 AppleScript”并将项目拖到右侧
在运行 AppleScript 框中,输入以下代码:
on run {input, parameters} tell application "Finder" --get the selected file set selectedItem to (item 1 of (get selection)) --get location info (folder:file format) set fileLocation to (selectedItem as alias) as string --replace : with / with subroutine set the semifinal to my replace_chars(fileLocation, ":", "/") --remove Macintosh HD with subroutine set the theFinal to my replace_chars(semifinal, "Macintosh HD", "") end tell do shell script "osascript " & "\"" & theFinal & "\"" return input end run on replace_chars(this_text, search_string, replacement_string) set AppleScript's text item delimiters to the search_string set the item_list to every text item of this_text set AppleScript's text item delimiters to the replacement_string set this_text to the item_list as string set AppleScript's text item delimiters to "" return this_text end replace_chars
文件 > 保存,并为其命名,如“运行 AppleScript”
现在,您可以在 Finder 中右键单击 .scpt 文件并选择“运行 AppleScript”并查看脚本的执行情况。
参考:子程序来源-AppleScript:基本子程序