贝博恩创新科技网

Applescript Editor怎么用?入门教程从哪开始?

AppleScript Editor 教程:从入门到自动化

AppleScript 是苹果公司为其 macOS 操作系统开发的一种脚本语言和系统,它允许用户通过编写简单的英文式指令来自动化重复性任务,控制不同应用程序之间的协作,甚至创建自己的小工具。

Applescript Editor怎么用?入门教程从哪开始?-图1
(图片来源网络,侵删)

AppleScript Editor(在旧版本中称为“脚本编辑器”)就是用来编写、运行、调试和保存 AppleScript 脚本的官方工具。


第一部分:准备工作与界面初探

如何打开 AppleScript Editor

  • 方法一(推荐):按下 Command + 空格键 打开聚焦搜索,输入 脚本编辑器Script Editor,然后按回车。
  • 方法二:在“应用程序” > “实用工具”文件夹中找到并打开“脚本编辑器”。

熟悉 AppleScript Editor 界面

打开后,你会看到一个简洁的界面,主要由以下几部分组成:

  • 工具栏:包含新建、打开、运行、停止、记录等常用功能的按钮。
  • 主编辑区:在这里编写你的 AppleScript 代码。
  • 事件日志:这是最重要的区域之一,当你运行脚本时,它会显示脚本被系统“翻译”成的事件,帮助你理解脚本在做什么,也是调试的关键。
  • 结果:如果脚本有返回值(比如获取文件列表、计算结果等),它会显示在这里。
  • 描述:显示当前脚本的描述、版本、作者等信息。

第二部分:你的第一个脚本

让我们从一个最简单的例子开始,让电脑“说话”。

  1. 打开 AppleScript Editor。
  2. 在主编辑区输入以下代码:
    say "你好,世界!"
  3. 点击工具栏上的 “运行” 按钮(或按下快捷键 Command + R)。

你会听到电脑用系统默认的语音说出“你好,世界!”,在“事件日志”中,你会看到:

Applescript Editor怎么用?入门教程从哪开始?-图2
(图片来源网络,侵删)
tell application "System Events"
    say "你好,世界!"
end tell

这表明你的 say 命令被系统包装成了一个发送给 "System Events" 应用的事件。


第三部分:核心概念与语法

AppleScript 的语法非常接近自然语言,这让学习曲线变得平缓。

基本语法规则

  • 不区分大小写say "Hello"SAY "hello" 效果一样。
  • 语句以换行结束:通常一行一个命令。
  • 使用英文标点符号:主要是冒号 和逗号 。
  • 注释:使用 来添加单行注释, 来添加多行注释。
    -- 这是一个单行注释
    (*
    这是一个
    多行注释
    *)

变量

使用 set 关键字来给变量赋值。

-- 赋予一个文本值
set myName to "张三"
-- 赋予一个数字值
set myAge to 30
-- 使用变量
say "你好," & myName & ",你今年" & myAge & "岁了。"

& 是连接字符串的运算符。

Applescript Editor怎么用?入门教程从哪开始?-图3
(图片来源网络,侵删)

数据类型

AppleScript 支持多种数据类型,最常用的有:

  • 文本:用双引号括起来,如 "Hello"
  • 数字:如 100, 14
  • 布尔值truefalse
  • 列表:有序的集合,用花括号 表示,可以包含不同类型的数据。
    set myFruits to {"apple", "banana", "orange"}
  • 记录:无序的键值对集合,用花括号 和冒号 表示,类似字典。
    set userInfo to {name:"李四", age:25, city:"北京"}

条件判断

使用 if 语句来执行条件逻辑。

set myScore to 85
if myScore >= 90 then
    say "太棒了!你是优等生!"
else if myScore >= 60 then
    say "及格了,继续努力!"
else
    say "很遗憾,你需要再接再厉。"
end if

循环

使用 repeat 语句来重复执行代码块。

  • Repeat with...in (遍历列表)

    set myFruits to {"apple", "banana", "orange"}
    repeat thisFruit in myFruits
        say thisFruit
    end repeat
  • Repeat with...from...to (数字循环)

    repeat with i from 1 to 5
        say "计数:" & i
    end repeat
  • Repeat...times (固定次数循环)

    repeat 3 times
        say "你好!"
    end repeat

第四部分:与应用程序交互

AppleScript 的真正威力在于控制其他应用程序,这通过 tell 语句实现。

基本 Tell 语句

tell 告诉某个应用程序执行接下来的命令。

示例:控制“文本编辑”

  1. 打开“文本编辑”应用。
  2. 在 AppleScript Editor 中编写以下脚本:
    tell application "文本编辑"
        activate -- 激活“文本编辑”应用,使其成为前台窗口
        make new document -- 创建一个新文档
        set the content of the front document to "这是由 AppleScript 写入的文本。"
    end tell
  3. 运行脚本,你会看到“文本编辑”被打开,并自动填写了文本。

获取应用程序信息

你可以询问应用程序它有什么“命令”(即它的“字典”)。

示例:获取 Safari 的所有书签

tell application "Safari"
    set allBookmarks to every bookmark of the bookmarks menu
    repeat with thisBookmark in allBookmarks
        log the name of thisBookmark -- 在“系统日志”中打印书名
    end repeat
end tell

如何查看应用程序的字典?

  • 在 AppleScript Editor 中,点击菜单栏的“文件” > “打开字典...”。
  • 选择你想了解的应用程序(如 Safari、Finder、邮件等),打开后你会看到该应用所有可用的类、命令和属性,这是学习如何控制特定应用的最佳资源。

第五部分:文件系统操作

与文件和文件夹交互是自动化任务的核心。

示例:查找桌面上的所有 PNG 图片

-- 定义桌面路径
set desktopPath to (path to desktop folder)
-- 查找所有扩展名为 .png 的文件
tell application "Finder"
    set pngFiles to every file of desktopPath whose name extension is "png"
    -- 显示找到的文件数量
    say "找到了 " & (count of pngFiles) & " 张 PNG 图片。"
    -- 遍历并打印文件名
    repeat thisFile in pngFiles
        log (name of thisFile)
    end repeat
end tell

常用文件操作命令:

  • exists file "Macintosh HD:Users:yourname:Desktop:myFile.txt": 检查文件是否存在。
  • make new folder at desktopPath with properties {name:"新文件夹"}: 创建新文件夹。
  • move file "源文件路径" to folder "目标文件夹路径": 移动文件。
  • duplicate file "源文件路径": 复制文件。
  • delete file "文件路径": 删除文件。

第六部分:调试技巧

脚本出错是常有的事,AppleScript Editor 提供了强大的调试工具。

  1. 显示事件日志:这是首要的调试步骤,查看你的命令是否被正确地翻译成了应用程序能理解的事件。
  2. 显示结果:如果你的脚本应该返回一个值但结果为空,说明可能获取或计算过程出了问题。
  3. 使用 log 命令:在脚本中插入 log "调试信息",可以在“事件日志”中打印出变量的值或程序的执行状态,帮助你定位问题。
    set myCount to 10
    log "开始循环,myCount 的值是:" & myCount
    repeat with i from 1 to myCount
        log "当前 i 的值是:" & i
    end repeat
  4. 逐行执行

    在代码行号左侧点击,可以设置一个**断点

分享:
扫描分享到社交APP
上一篇
下一篇