AppleScript终极入门指南(上)
原文:The Ultimate Beginner’s Guide To AppleScript。
AppleScript是一种内建于OS X的脚本语言。它的主要工作是自动执行那些重复而耗时的任务。举个例子,作为Freelancer,我很厌烦每周为不同的客户创建清单(invoice)。为了解决这个问题,我写了一个AppleScript脚本,用它来读取我记录在iCal上的日志,然后根据它们的时间用Microsoft Excel自动创建清单,并发送给我的客户。所有任务,一键搞定。
值得称道的是,AppleScript并不是被编程高手所独享。实际上,你无需拥有任何编程经验。本文将告诉你如何用最简单的指令(这些指令都已内建于每一个应用程序的框架中)为几乎任何一个应用程序编写AppleScript脚本。奇妙吧?继续读读就知道了!

主窗口
入门:Tell语句
要想编写AppleScript,首先打开 Applications >> AppleScript 文件夹下的“Script Editor”。你会看到一个简单的窗口,其中包括一个大的文本输入区域,上面有一排按钮。在文本框里输入下面这行代码:
1 2 3 | tell application "Finder" display dialog "Hello World" end tell |
AppleScript试图用平实的语言(英语)最大限度的简化代码。大多数命令都被包含在Tell代码块(tell block)中。它之所以被称为Tell代码块,是因为你正在告诉(Telling)某个指定的应用程序去做你想做的事情。比如,上面的代码是告诉Finder显示一个包含有“Hello World”的对话框。在你对那个应用程序交代完指令后,用“end tell”结束代码块。
切记要结束你的tell代码块,否则代码将不能编译!
在你输完代码,点击“Compile”(编译)那个锤子图标。如果语法是正确的,你的代码将自动被赋予格式和颜色。如果其中有错,Script Editor会高亮错误的区域,并显示错误信息。下面是在编译代码中常见的几种颜色(详见 Script Editor > Preferences)。

颜色指南
代码编译后,点击“Run”(运行)按钮,便会看到下面这个对话框了:

您好,世界
现在点击“OK”按钮,瞧一眼Script Editor窗口的下面。只要你一运行脚本,Script Editor就会告诉你结果是什么或者返回(return)了什么。这里,它就是告诉你“OK”被点了。

返回OK
声明变量
变量在任何一种语言中都是非常必要的。它们提供一种简单的方式用于读取或操控代码中的信息。每种语言创建或“声明”(declaring)变量的方式有所不同。在AppleScript中,要像下面这样声明变量:
1 2 3 4 | set theString to "Hello World" tell application "Finder" display dialog theString end tell |
上面这个例子中有几点需要注意。首先,可以看到是用“set”和“to”命令来声明变量的。这里,你设置的变量名为“theString”,它的值为“Hello World”。许多编程语言都有要求声明变量类型(比如整型、浮点、文本等等)但是AppleScript有足够智能,可以识别出你的变量,无需任何说明。
同样要注意的是变量名的写法。你不能在变量名中加入空格,比较好的方式是采用camel法(theString)或者下划线法(the_string)。至于你选择哪种方式,这是无所谓的,关键要在代码中保持一致。尽量让你的变量名有意义。当你读其他人的代码时,“myWariable”这种变量名会令人非常恼火,因为既看不出变量值是什么也看不是它用作什么。
最后要注意的是,我在变量中存放了一段文本“Hello World”,可以在整个代码中不停的调用这个变量。所以,如果过后我想把“Hello World”改成“Good Morning Dave”,我只需要在声明变量的地方改一下就可以了。
变量运算
你可以对变量做各种疯狂的事,但是本文只是关于AplleScript的一篇短文,所以我简单的为大家展示几个。输入下面这些代码:
1 2 3 4 5 6 7 8 9 10 11 12 | --Integer Variables(整型变量) set the FirstNumber to 3 set the theSecondNumber to 2 --Variable Operations(变量运算) set theAnswer to (theFirstNumber + theSecondNumber) set theAnswer to (theAnswer + 1) --String Variables(字符串变量) set theString to "3+2+1=" --Display Dialog(显示对话框) tell application "Finder" display dialog theString & theAnswer end tell |
小提示:按一下“enter”键(不是“return”键)就马上开始编译了。对于台式机来说,这个键在数字小键盘上,而在笔记本上,它位于空格右侧苹果键的旁边。
随着你的脚本越来越复杂,代码就需要有些“条理”。在一行文本前加两个小横杠“–”就相当于添加注释。用注释来分隔代码的不同区块,有助于导航。在上面的例子中,我创建了一个字符串变量(只有文本)以及几个整型变量。需要注意的是,你可以在变量中进行数学运算。比如,我把“theFirstNumber”设成3,“theSecondNumber”设成2,然后在“theAnswer”里对它们求和。
还有一点,你可以在声明后改变变量。在把“theAnswer”设成“theFirstNumber”与“theSecondNumber”之和后(此时结果是5),我又给“theAnswer”加了1(结果是6)。如果你运行这个脚本,会看到如下所示的结果:

简单的数学运算
再强调一下,这仅仅是展示了一下变量运算的皮毛。现在你应该明白,变量不是“一成不变”的。编程语言的强大之处就体现在它们能够操作变量完成各种复杂的任务。
(未完待续)
This entry was posted on Tuesday, August 4th, 2009 at 1:50 am and is filed under development, mac, novice, translation, tutorial. You can follow any responses to this entry through the RSS 2.0 feed. You can leave a response, or trackback from your own site.


x5, August 5th, 2009 at 3:35 am
To Raecoo,
呵呵,没研究,就是瞎学,为了不与“技术绝缘”,就随便翻译点东西……
而且一直觉得,用着mac,如果不学学mac本家的东东,有点浪费啊:P