简介:
AppleScript (苹果脚本),它使计算机程序之间的沟通成为可能。
通过AppleScript可以做到:
- 查阅电子邮件的同时转存它们;
- 让图片编辑程序批量修改图片的分辨率和尺寸,之后把修改好的图片发送到另外的计算机上 或者发布到网络上;
- 许多其它事情。
通过苹果脚本,编写一系列的指令,操作Mac OS X上的支持AppleScript的程序。
AppleScript是一种面向对象的脚本语言,和其他面向对象的语言一样拥有着:对象(Object)、属性(Property)和 命令(或方法、函数,Command)。
打开脚本编辑器,选择AppleScript,来一段简单的操作吧!
最简单的程序
第一个脚本不是打印hello world ,beep 会发出“咚”的一声
beep
如果要多响几声,就在beep后面加上数字。数字代表需要发出声响的次数。
beep 2
没有hello world感觉不爽?!接下来我们让Mac跟我说一声hello world。
say "Hello world."
还可以选择朗读的语音。比如使用“Fred”、“Trinoids”、“Cellos”或者“Victoria”。
say "Hello world." using "Victoria"
注意:AppleScript不要求大小写,
AppleScript的指令和英语十分相似,脚本易读易懂。上面的几个例子只是说明下AppleScript的特点,并不实用。AppleScript的主要作用是让你和其他的程序沟通。需要对方程序支持脚本操作,如何支持脚本操作我们之后再讲。
现在让我们来看一个简单的与系统程序沟通的例子。
以 Finder 为例。
清理废纸篓
tell application "Finder"
empty the trash
end tell
告诉 谁 来执行某项任务。
执行什么任务。
如果 我告诉 QQ来执行清空废纸篓,就不会达到效果。因为QQ不知道如何完成这个任务。清空废纸篓这样的命令必须交给Finder执行。
看下面这段代码
tell application "Finder"
empty the trash
open the startup disk
beep
end tell
清空了废纸篓,Finder又打开了一个窗口显示硬盘上的内容。有趣的是beep也执行了。尽管Finder不知道beep指令是什么含义,但是AppleScript脚本程序知道如何处理。
如果把 open the startup disk 放到tell模块外面,
tell application "Finder"
empty the trash
beep
end tell
open the startup disk
组成Mac OS X的AppleScript脚本程序不知道怎么去打开启动硬盘窗口,也不会去查找能够执行它的应用程序。所以走到该行出现错误,之后的代码就不执行了。
虽然大部分时候,AppleScript不会去联想。但也是有些功能可以使我们更快速的完成代码编写。
点击右键,可以在菜单里找到需要的模块
![2144458-abab86eb1d1dd5c1.png](https://upload-images.jianshu.io/upload_images/2144458-abab86eb1d1dd5c1.png)
或者选中语句之后再选择tell模块,将会自动加入到tell模块里。
![2144458-d54e8ff4be184651.png](https://upload-images.jianshu.io/upload_images/2144458-d54e8ff4be184651.png)
![2144458-3e0bea25cacb1eed.png](https://upload-images.jianshu.io/upload_images/2144458-3e0bea25cacb1eed.png)
注释
开发中注释必不可少
单行注释
-- 这是一条注释
![2144458-e4165d312e240d5c.png](https://upload-images.jianshu.io/upload_images/2144458-e4165d312e240d5c.png)
多行注释
(*
多行
注释
*)
![2144458-8abf20681d692884.png](https://upload-images.jianshu.io/upload_images/2144458-8abf20681d692884.png)
右键选择 "Comment Tags" 可以将选中的部分之间转成注释
![2144458-b31224372b8f33e7.png](https://upload-images.jianshu.io/upload_images/2144458-b31224372b8f33e7.png)