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?