• 日常搜索
  • 百度一下
  • Google
  • 在线工具
  • 搜转载

AppleScript初学者指南

这是一个新系列的第一篇文章,它重新审视了我们读者过去最喜欢的一些帖子,这些帖子仍然包含您可能会发现有用的很棒的相关信息。这篇文章最初发表于 2009 年 7 月 7 日。

AppleScript 最好的部分是您不必是天才程序员也可以使用它。事实上,您不必有任何编程经验。本文将向您展示如何使用隐藏在每个应用程序框架中的简单指令为几乎任何应用程序编写 AppleScript。感兴趣?继续阅读!

什么是 AppleScript?

AppleScript 是一种内置于 OS X 的强大脚本语言。AppleScript 的主要用途是自动执行通常重复且耗时的任务。例如,作为一名自由职业者,我讨厌每周为我的各种客户创建Invoicing。为了解决这个问题,我编写了一个 AppleScript,它读取我登录 iCal 的时间,根据这些时间在 Microsoft Excel 中创建一张Invoicing,并将Invoicing通过电子邮件发送给我的客户。只需单击一个按钮!

AppleScript初学者指南  第1张
主窗口

入门:告诉块

要创建 AppleScript,请打开位于 Applications 文件夹内 AppleScript 文件夹内的应用程序“Script Editor”。您应该会看到一个简单的窗口,其中包含一个大文本字段,顶部带有一条按钮。在文本字段中键入以下代码:

[applescript]
告诉应用程序“Finder”

显示对话框“Hello World”

结束告诉
[/applescript]

AppleScript 尝试尽可能使用简单的英语,以使编码变得非常简单。AppleScript 中的大多数命令都位于“tell 块”内。它被称为“告诉块”,因为您正在“告诉”给定应用程序您想要它做什么。例如,上面的代码告诉 Finder 显示一个包含“Hello World”字样的对话框窗口。完成给定应用程序的命令或命令字符串后,使用“end tell”结束块。

永远记得正确结束你的tell块,否则代码将无法编译!

完成上述代码的输入后,单击“编译”锤子图标。如果您的语法正确,您的代码将自动格式化和着色。如果您犯了错误,脚本编辑器将突出显示有问题的区域,并给您一条消息,告诉您它认为可能出了什么问题。这是您将在编译代码中看到的各种颜色的快速参考(在脚本编辑器>首选项中找到)。

AppleScript初学者指南  第2张
颜色指南

编译代码后,单击“运行”按钮。您应该看到以下对话框:

AppleScript初学者指南  第3张
你好世界

现在单击“确定”按钮并查看脚本编辑器窗口的底部。当您运行脚本时,脚本编辑器会告诉您结果是什么,或者“返回”了什么。在这种情况下,它告诉您单击了“确定”按钮。

AppleScript初学者指南  第4张
好的回报

声明变量

每种编程语言中的变量本质上都是相同的。它们提供了一种在紧凑的代码片段中访问和操作大量信息的简单方法。每种语言的创建或“声明”变量都是不同的。在 AppleScript 中,您可以按如下方式声明变量:

[applescript]
将字符串设置为“Hello World”

告诉应用程序“Finder”

显示对话框 theString

结束告诉
[/applescript]

关于前面的例子,有几件事情需要注意。首先,请注意变量是使用“set”和“to”命令声明的。通过这样做,您将变量名称(在本例中为“theString”)设置为等于某个值,在本例中为文本“Hello World”。许多编程语言要求您在声明中声明所需的变量类型(整数、浮点数、文本等)。然而,AppleScript 足够智能,可以在没有任何格式说明的情况下处理您的变量。

还要注意我是如何输入变量名的。变量名中不能有空格,因此最好使用驼峰式 (theString) 或下划线方法 (the_string)。您选择哪种方法并不重要,只要确保您在整个代码中保持一致即可。为所有变量赋予有意义的名称也是一个好主意。当您查看其他程序员的代码时,看到变量名称(例如“myVariable”)并没有给出任何关于它们是什么或它们将用于什么的指示,这可能会很烦人。

最后,请注意,现在我已将文本“Hello World”放入变量中,我可以在整个代码中一次又一次地调用该变量。然后,如果我稍后决定将文本“Hello World”更改为“Good Morning Dave”,我只需更改声明变量的行上的文本。

使用变量

你可以用变量做各种疯狂的事情,但由于这只是对 AppleScript 的简要介绍,我只给你看一些。输入以下代码:

[
applescript] -- 整数变量
将 theFirstNumber 设置为 3
将 theSecondNumber 设置为 2

--变量操作
将答案设置为(theFirstNumber + theSecondNumber)
将答案设置为(theAnswer + 1)

--String变量
设置theString为“3+2+1=”

--显示对话框
告诉应用程序“Finder”

显示对话框 theString & theAnswer

结束告诉
[/applescript]

您可以通过按“回车”键(而不是返回键)快速编译您的代码。它位于台式计算机的十键数字键盘上,笔记本电脑空格键右侧的“命令”键旁边。

随着您的脚本变得更加复杂,需要进行一些组织。通过在一行文本前输入两个破折号“--”,您可以插入注释。使用注释来分隔和描述您的代码部分,以便于导航。在此示例中,我创建了一个字符串变量(仅限文本)和一些整数变量。请注意,您可以对变量执行数学运算。在这里,我将“theFirstNumber”设置为等于三,将“theSecondNumber”设置为等于二,然后在“theAnswer”中将它们加在一起。

另请注意,您可以在声明变量后更改它。在将“theAnswer”设置为“theFirstNumber”和“theSecondNumber”之和(结果为 5)之后,我立即更改了“theAnswer”的值,将其加一(结果为 6)。如果您运行此脚本,您应该会看到以下结果:

AppleScript初学者指南  第5张
一些基础数学

同样,这只是触及了您可以对变量执行的各种操作的表面。现在你应该明白变量不是静态的。任何编程语言背后的大部分功能都是操纵变量以执行各种任务的能力。

一切的关键:AppleScript 字典

尽管 AppleScript 本身有广泛的命令可以应用于 OS X 中的任何程序或项目,但每个应用程序的开发人员的任务是为其应用程序添加完整的 AppleScript 支持。这意味着开发人员必须编写简单的手册来说明如何通过 AppleScript 与他们的应用程序进行通信。这些手册称为“词典”。要查看字典,请转到文件>在脚本编辑器中打开字典。向下滚动应用程序列表,单击邮件并点击“确定”。您应该看到以下窗口:

AppleScript初学者指南  第6张
邮件词典

左侧的列包含命令和项目的可用“套件”。当您单击一个套件时,您会看到下面显示的套件中包含的所有内容。您可以通过单击第二列,然后再次单击第三列来缩小此预览范围。套件包含命令(带有圆形的 C)和类(带有正方形的 C),类包含属性(P)和元素(E)。为了理解这一切是如何工作的,让我们使用这个字典来创建一个脚本。

第 1 步:为我们的脚本创建算法

首先,我们需要一个算法,这是一种奇特的方式来说明我们需要准确地写下我们的脚本将要做什么。我们想创建一个脚本来撰写和发送电子邮件。我们将希望使用变量来轻松更改消息本身以及消息发送给谁。在编写算法时,我们需要牢记 AppleScript 的工作方式。以下是我想出的步骤:

  1. 为收件人、收件人的电子邮件地址、电子邮件主题和电子邮件正文创建变量。

  2. 创建一个变量来保存我们的新消息及其各种属性

  3. 创建新消息

  4. 发送新消息

第 2 步:创建一些变量

我们已经知道如何创建保存文本的变量,所以第一步我们甚至不需要字典。代码如下所示:

[
applescript ] -- 变量
将接收者名称设置为“John Doe”
,将接收者地址设置为“nobody@nowhere.com”,
将主题设置为“AppleScript 自动电子邮件”
,将内容设置为“此电子邮件是使用 AppleScript 创建和发送的!”
[/苹果脚本]

如您所见,我们刚刚将占位符文本放入变量中,用于收件人的姓名和电子邮件地址以及我们消息的主题和内容。您可以将这些更改为您想要的任何内容。请务必将您自己的电子邮件地址放入 recipientAddress 变量中,以便您可以确保脚本在您收到电子邮件时正常工作。

第 3 步:使用邮件字典创建消息变量

由于我们不知道如何告诉 Mail 创建一条新消息,因此我们需要参考 AppleScript 字典。如果单击“Standard Suite”,您将看到 AppleScript 中标准的几个常用命令。知道我们想要“创建”一条新消息,我们只需滚动选项并找到等效的内容。你会看到没有“create”命令,但大约一半有一个“make”命令。这听起来很完美,所以我们现在知道告诉 AppleScript 我们想要“制作”一些东西。

接下来单击“邮件”套件。我们已经有了命令(make),所以向下滚动命令(动词),直到看到类(名词)。我们遇到的第一类是“outgoing message”,这很棒,因为这正是我们想要的!现在单击“传出消息”类并查看下面的可用属性。

我们需要为收件人的姓名、收件人的电子邮件地址、主题和邮件内容插入我们的变量。在属性列表中,没有关于收件人的任何内容,但有主题和内容的属性。我们现在知道了引用这些属性的正确语法。请注意,字典为您提供了定义属性的格式。例如对于主题,我们将键入单词“主题”,后跟一个冒号,然后是主题的文本。

AppleScript初学者指南  第7张
主题内容

同样在这个套件中,您会找到一个“发送”命令,我们可以使用它来发送消息,只需键入“发送”即可。我们仍然需要知道收件人姓名和电子邮件地址的正确语法。由于它不在此套件中,请单击“消息”套件。大约在我们找到“收件人”的课程列表的一半。点击收件人类,我们再次看到,我们可以使用简单的英语来引用收件人的属性。我们只需输入“名称”和“地址”。

您可以使用搜索功能快速搜索属性、类、元素和命令。

现在我们准备好使用我们刚刚学习的语法创建我们的消息变量。代码如下所示:

[
applescript ] -- 变量
将接收者名称设置为“John Doe”
,将接收者地址设置为“nobody@nowhere.com”,
将主题设置为“AppleScript 自动电子邮件”
,将内容设置为“此电子邮件是使用 AppleScript 创建和发送的!”

--Mail Tell Block
告诉应用程序“邮件”

--创建消息
设置 theMessage 以使用属性 {subject:theSubject, content:theContent, visible:true} 制作新的传出消息

结束告诉
[/applescript]

请注意,我创建了一个 tell 块来包含 Mail 应用程序的所有命令。然后我设置一个变量(theMessage)来“制作”一条具有上述属性的新“传出消息”。另请注意,属性集始终包含在方括号 {} 中。

第 4 步:设置收件人并发送消息

现在我们已经创建了消息变量,我们需要调用该变量并使用 theMessage 的属性创建一个新消息。我们还需要设置收件人并发送消息。为此,我们将在变量上使用 tell 块。这是我们完成的脚本。

[
applescript ] -- 变量
将接收者名称设置为“John Doe”
,将接收者地址设置为“nobody@nowhere.com”,
将主题设置为“AppleScript 自动电子邮件”
,将内容设置为“此电子邮件是使用 AppleScript 创建和发送的!”

--Mail Tell Block
告诉应用程序“邮件”

--创建消息
设置 theMessage 以使用属性 {subject:theSubject, content:theContent, visible:true} 制作新的传出消息

--设置一个收件人
告诉theMessage
使新的收件人具有属性{name:recipientName,address:recipientAddress}

--发送消息
发送

结束告诉
结束告诉
[/applescript]

首先,我们创建了 theMessage 的新副本(它继承了我们放入其中的所有属性)并将其设置为“具有属性的收件人”。这告诉 Mail 我们要添加具有以下属性的收件人。在这里,我们只是使用了我们之前学习的语法以及收件人姓名和地址的变量。

最后,我们调用了“send”命令来发送我们的消息。请注意,这次我们有两个告诉块要关闭。编译代码并修复任何错误后,点击“运行”。邮件应自动创建和发送邮件。太棒了!检查您发送的文件夹以确保一切正常。

AppleScript初学者指南  第8张
邮件信息

恭喜,您已经创建了您的第一个 AppleScript!您可以将其保存为可以返回并编辑的简单脚本,也可以保存为打开时自动运行的应用程序。

结论:继续学习

我希望这个初学者指南能让你思考你想要自动化的各种流程和任务。我向您展示的语法以及 AppleScript 词典将使您走得更远。但是,如果您真的对以许多有用的方式实现AppleScript感兴趣,那么您还有更多的阅读工作要做。Apple 在其网站上提供了大量有关 AppleScript 的信息。这是一个很好的起点。


文章目录
  • 什么是 AppleScript?
  • 入门:告诉块
  • 声明变量
  • 使用变量
  • 一切的关键:AppleScript 字典
  • 第 1 步:为我们的脚本创建算法
  • 第 2 步:创建一些变量
  • 第 3 步:使用邮件字典创建消息变量
  • 第 4 步:设置收件人并发送消息
  • 结论:继续学习