AppleScript入门(1)

AppleScript是Mac OS X内置的一种功能强大的脚本语言,使用AppleScript的目的是把一些重复繁琐并且耗费时间的任务自动化。比如我是一个自由职业者,我十分的讨厌每个星期为不同的客户去创建帐单,为了解决这个问题我写了一个AppleScript来读取我在iCal里输入的时间,然后自动在Microsoft Excel里根据这些时间创建出帐单并且自动通过邮件发送给我的客户,要完成所有的这一切动作只需要轻轻的按一个按钮。

AppleScript的一个优点是你不必是一个天才程序员才能使用它,事实上你甚至不需要有任何编程的经验!这篇文章会告诉你如何通过隐藏在每个应用程序框架里的简单指令去为几乎任何的应用程序写一个AppleScript。感兴趣了?那就继续读下去吧~

从这里开始:Tell命令块

要创建一个AppleScript时,只要打开应用程序里的实用工具下的AppleScript编辑器就可以开始了。打开后你会看到上图类似的窗口,这个是AppleScript编辑器的主窗口,尝试在里面输入以下代码:

tell application "Finder"
	display dialog "Hello World"
end tell

AppleScript这种脚本语言本身尽可能使用平实的英语作为语法来让代码特别容易理解和阅读。AppleScript的大多数命令会位于Tell命令块内,它叫“Tell 命令块”是由于你在“告诉”应用程序你想让它做些什么。比如上面所说的三行代码告诉Finder这个应用程序显示一个包含“Hello World”字符串的对话框。当你在Tell命令块内写完了你想要应用程序做的一个或多个命令后,你必须要以“end tell”命令来结束这个Tell命令块。

初学者最容易犯的错误就是忘了最后加上“end tell”来结束Tell命令块,如果把它忘了,脚本将会编译失败。

当你在编辑器内完成输入上面的代码后,按下上面的“编译”铁锤图标。如果你的语法是正确的话,你所输入的代码会被自动格式化并改变颜色。如果你输入的时候出现了错误,当你编译的时候编辑器会告诉你哪一块出错了,并尝试告诉你它认为错误是什么。下面是编辑器默认的一些颜色分别代表什么,你可以在菜单栏的AppleScript编辑器->偏好设置里看到并修改。

你的代码成功编译后,再按“运行”图标,你应该会看到一个Hello World的对话框。

现在按下“好”按纽并且看一下编辑器下方。当你运行脚本时,编辑器会告诉你运行的结果是什么,或者什么被“返回”了,在我们的例子里,它告诉我们“好”按纽被按下了。

声明变量

变量在每一种编程语言里面的意义都是一样的,程序代码利用变量方便的对许多信息进行读取或运算。但在每一种语言里创建或“声明”变量是不同的,在AppleScript里你会像下面这样声明变量:

set theString to "Hello World"
tell application "Finder"
	display dialog theString
end tell

上面的例子中有几处地方需要注意。首先,我们注意到变量的声明是通过“set”和“to”命令来进行。在例子中我们“set”了我们的变量(“theString”)为一个值(“Hello World”)。在很多编程语言里程序员被要求必须声明变量的类型(如整型、浮点型、字符串等等),但AppleScript足够的聪明而不需要程序员声明类型。

另外,请注意我是如何对变量命名的。你不能在变量名中间加空格,所以最好使用驼峰型(theString)或下划线型(the_string)变量命名方法。使用哪一种命名方法并不重要,但在你所写的程序中最好保持统一的命名方法。当你读其他人写的代码时,你一定会很讨厌看到类似“myVariable”这样的变量名,因为你从变量名上根本看不出这个变量是用来存什么的。

最后,我们注意到把“Hello World”放进了变量中,我可以在代码里一遍又一遍的引用这个变量。如果后面我决定要把“Hello World” 改成“Good Morning”,我只需要在声明变量的那一行进行修改就可以了。

使用变量

你可以尽情的使用变量来做各种疯狂的事,但鉴于这是一篇入门文章,我只会告诉你几种方法,输入下面的代码:

--Integer Variables
set theFirstNumber 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

当你的脚本变得越来越复杂,你就需要好好的组织一下你的脚本了。在一行代码前加上两个”-”号,代表这一行是注释,你可以使用注释来隔开和解释你的代码方便以后阅读。在上面的例子里,我创建了一个字符变量和几个整数变量。你可以对变量进行数学运算,在这里我把“theFirstNumber”设为3,“theSecondNumber”设为2,然后把他们相加并赋值给“theAnswer”变量。

另外,你可以在变量创建后改变变量的值。在“theFirstNumber” 和 “theSecondNumber”相加并把结果赋值给“theAnswer”(结果为5)后,我马上把 “theAnswer”自己加1(结果为6)。如果你运行这个脚本,你应该会看到以下的结果:3+2+1=6。

这只是一个很简单的范例,示范你可以对变量做的一些操作。你现在应该明白变量的值并不是不变的,一门编程语言的强大在于你能通过对变量的操作完成各种各样的任务。

猜你喜欢

转载自eric-gao.iteye.com/blog/755195