Mac系统脚本语言 AppleScript 的使用

title: Mac系统脚本语言 AppleScript 的使用 id: d8e9967f626876e523f37238fa2e2dfb tags: [] date: 2000/01/01 00:00:00 updated: 2023/03/07 14:11:39 isPublic: true --#|[分隔]|#--

Mac系统脚本语言 AppleScript 的使用

Mac系统脚本语言 AppleScript 的使用

AppleScript 是开发 Mac 系统脚本文件使用的语言。

编写好的代码有两种执行方式,一种保存为脚本,去执行这个脚本,另一种是直接执行脚本的命令。

编写完成后的文件保存为 .scpt 格式,然后可以在终端使用 osascript 执行。

或者也可以直接使用终端执行脚本的命令。

保存为脚本再执行:

比如下面这段代码,功能是调用系统弹框,展示 1234 几个数子:

display dialog 1234

可以放到 ~/Desktop/dialog.scpt 文件中,然后终端执行:

osascript ~/Desktop/dialog.scpt

直接使用终端执行指令:

另一种是直接在终端中执行脚本命令,执行结果一样:

osascript -e "display dialog 1234"

建议还是保存为脚本文件后再执行。

因为脚本文件可以编写复杂的逻辑,便于开发和管理。

基本使用实例

新建文件 openFinder.scpt,保存到桌面:

打开终端,输入以下并回车:

第一次执行时,系统可能会弹出提示,同意即可。

然后就可以看到一个新的访达窗口出现了。

执行文件时传入参数

可以在执行脚本文件时传入参数,比如有以下文件 readArg.scpt。

执行:

则脚本文件执行后,会打印第一个参数,返回第二个参数

单独功能指令

这部分展示单独运行的一些指令,只实现简单功能,可以用这些功能组合成复杂功能。

以下示例,都需要把代码保存成 .scpt 格式的文件,再用 osascript 执行。

打印

获取数据类型

下面是打印了一下数据类型

启动 Sublime Text 这个软件

注意:只有当 Sublime Text 是完全关闭的状态,使用这个脚本才会启动软件并自动打开一个窗口。

如果这个软件本身是启动状态,只是关闭了所有窗口,那么这个脚本执行后,只是把这个程序放在前台,但不会自动打开新窗口。

把某个已开启软件设为最前

这个指令不好用,需要软件已启动,只是没有在最前台,使用指令后,软件界面会跑到最前面来。

但如果软件未启动,直接会报错。

同理,下面指令中的 true 改为 false,可以隐藏软件界面。

在脚本中命令终端中执行shell指令

用这个指令启动、把软件设为最前台最好使了,不过这个指令其实压根不需要使用苹果脚本了,直接在终端执行指令就OK了。

执行以下脚本,它将使用终端执行 open "/Applications/Sublime Text.app" 这条指令:

弹框展示

调用系统弹框展示文本

声明方法

声明方法使用 on ... end,下面是一个加法的示例

设置变量和值

使用 set [变量名] to [字面值或一个方法的返回值],复制时可以使用 as 修改变量类型。

下面的 add(1, 2) 就是一个方法。

if 功能

下面是 return 值,结果会大致到控制台。

延迟功能 delay

以下一行,会让程序等待 3 秒再继续:

字符串是否包含

判断一个字符串,是否包含另一个字符串。

组合成的功能

这部分是能完成一些相对复杂的需求的脚本。

以下示例,都需要把代码保存成 .scpt 格式的文件,再用 osascript 执行。

获取当前前台运行的程序名称

Last updated

Was this helpful?