无需打开编辑器即可执行 AppleScript

无需打开编辑器即可执行 AppleScript

每次我想要运行 AppleScript 时,编辑器就会弹出。

有没有办法直接运行它?

答案1

脚本的保存方式对其在 Mac OS X 中的运行方式有很大影响。听起来您的脚本只是保存为脚本,这就是每次打开脚本时脚本编辑器都会打开的原因。

要解决此问题,请在 AppleScript 编辑器中打开脚本并将其另存为应用程序。这应该能解决问题。

步骤如下(在编辑器中)

文件 > 另存为 > 然后将文件格式设置为应用程序然后保存。

链接文本

答案2

保存脚本时,您可以从文件格式下拉菜单中选择“应用程序”;然后您将能够运行它,并且您仍然可以将其拖到脚本编辑器来打开脚本;或者您可以选择仅运行,这样它就不会保存可编辑版本。

或者,您也可以osascript在终端中使用该命令,可以是osascript /path/to/scriptosascript -e "a short script here"

答案3

在 macOS High Sierra 10.13 下没有文件/另存为。

您必须使用文件/导出/文件格式:应用程序 文件导出 文件格式

答案4

另一种方法是在 Automator 中创建一个服务,使用osascript命令在 Finder 中运行 .scpt。

(我没有使用英文版的 Automator,因此措辞可能不准确)

  1. 启动 Automator
  2. 文件 > 新建,然后选择服务
  3. 在“服务接受:”中选择“文件或文件夹”
  4. 在“位置:”中选择“Finder.app”
  5. 搜索“运行 AppleScript”并将项目拖到右侧
  6. 在运行 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
    
  7. 文件 > 保存,并为其命名,如“运行 AppleScript”

  8. 现在,您可以在 Finder 中右键单击 .scpt 文件并选择“运行 AppleScript”并查看脚本的执行情况。

参考:子程序来源-AppleScript:基本子程序

相关内容