[macOS翻译]AS: 了解 AppleScript 脚本附加功能 (OSAX)

253 阅读7分钟

原文:AS:  Understanding AppleScript Scripting Additions (OSAX) (evernote.com)

发布者:JMichaelTX

请在 Keyboard Maestro 论坛Evernote 论坛MacScripter 论坛查看我的个人资料。

如有任何问题或建议,请通过私人邮件 (PM) 向上述论坛之一报告。

摘要

  • 定义 -- 脚本附加文件是一种特殊文件(扩展名为".osax"),只要将 OSAX 文件安装在 Mac 的适当位置(见下文),就可以在所有脚本中使用附加的 AppleScript 命令(功能)。
  • 如何使用 -- 一般来说,这些 OSAX 命令的行为就像本地 AppleScript 命令集的一部分,除非你在脚本中使用了 "use "命令。 详见下文。
    • 它们与脚本库中的处理程序(函数)非常相似,只是在使用其命令时无需引用 OSAX 文件。
  • 已包含的 StandardAdditions.osax -- 苹果在 macOS 中提供了一个脚本附加文件:StandardAdditions.osax
    • 使用其命令时,你无需做任何操作。
  • Satimage.osax -- Satimage.osax 是一款功能强大、可靠、安全且免费的第三方脚本插件,经常被推荐使用(包括 JMichaelTX)。
  • 脚本字典 -- 在脚本编辑器中打开脚本字典,选择 "文件">"打开字典...",即可查看已安装的任何脚本插件的命令和语法。

示例

  • StandardAdditions.osax
    • 设置 myFile 为选择的文件 -- 返回别名
    • set filePath to POSIX path of (choose file of type {"public.image"}) -- 返回图像文件的 POSIX 路径
  • Satimage
    • 用 regexp 将 {"31/12/2007", "29/2/2008"} 中的 "([0-9]{1,2})/([0-9]{1,2})" 改为 "\2/\1" -- 返回 {"12/31/2007", "2/29/2008"}

背景介绍

很久以前,我就发现了 AppleScript 脚本附加功能的强大。 但当我试图向他人解释时,我发现互联网上真的没有任何关于它的全面的好文章。 甚至连苹果公司的文章也没有,不过有一篇 1996 年的 PDF 文章。 苹果公司最近在这里有一个简短的讨论: 脚本添加,AppleScript 语言指南,2016-01-25。

于是,我翻开了我最喜欢的一本 AppleScript 相关书籍:《Learn AppleScript: Mac OS X 脚本和自动化综合指南》

以下内容主要基于这本书。 希望对所有读者有所帮助。

定义

脚本附加文件,又称 OSAXen,是为应用程序添加额外 AppleScript 命令的特殊文件。Mac OS X 标配了一些脚本附加文件,而更多的脚本附加文件可以免费或从商业渠道下载。你可以在 www.osaxen.com 找到许多第三方脚本附加文件。注:缩写 OSAX 代表开放脚本架构扩展。现代脚本插件的文件名扩展名为 .osax。

脚本插件是为脚本添加额外命令的插件。脚本扩展实际上是将处理程序安装到正在运行的应用程序中,而不是安装到 AppleScript 语言本身,但由于这些处理程序是为了 AppleScript 的利益而提供的,因此我们一般将其称为 AppleScript 扩展。

StandardAdditions.osax

AppleScript 安装时附带了一个脚本扩展,称为 StandardAdditions.osax。 你可以通过 "文件">"打开词典",然后选择 "StandardAdditions",或从 "标准扩展 "中查看脚本词典。 你也可以使用下面的 AppleScript 打开字典:

set stdAddOsax to alias ((path to scripting additions folder from system domain as text) & "StandardAdditions.osax")
tell application "Script Editor" to open stdAddOsax

看起来是这样的

image.png

优点

使用脚本附加功能有几个好处

  • 它们可以让你执行普通 AppleScript 无法完成的任务。Mac 操作系统提供的许多功能--文件系统访问、图形用户界面、音频功能等--都只能通过 C 语言等低级语言来实现。
  • 它们可以让你的脚本运行得更快。脚本添加和 FBA 通常使用 C 等低级语言编写,运行速度比 AppleScript 更快。
  • 它们可缩短开发周期。使用现成扩展中的命令,可以节省你自己用 AppleScript 编写相同功能所需的时间。
  • 虽然脚本附加命令通常在运行脚本的应用程序中使用,但它们也可以发送到其他应用程序。例如,当你需要在特定应用程序中显示对话框时,这将非常有用:
tell application "Finder"
     activate
     display alert "The Finder says Hello!"
end tell

限制

还有一些限制需要注意

  • 如果你向其他用户分发脚本,你需要确保这些脚本使用的任何第三方脚本附加组件也存在于这些用户的系统中。
  • 只有普通用户和管理员运行的应用程序才能加载脚本附加功能。安全更新 2008-005 (support.apple.com/kb/HT2647) 中引入了一项安全限制,防止系统拥有的应用程序进程自己加载脚本附加文件。
  • 在脚本中添加一个或多个使用语句时,需要use scripting additions语句来访问任何/所有脚本附加文件中的命令。 详情请参阅 "使用语句": 脚本附加功能

安装脚本附加文件

与可以在任何地方安装和使用的可编写脚本的应用程序不同,脚本附加文件需要安装到几个特殊的 ScriptingAdditions 文件夹之一,然后 AppleScript 才能使用它们。

Mac OS X 在三个标准位置定义了 ScriptingAdditions 文件夹:

  • 系统域,仅用于苹果脚本附加组件: /System/Library/ScriptingAdditions/
  • 本地域,所有用户均可使用脚本附加功能: /Library/ScriptingAdditions/
  • 用户域,您可以在此添加仅供您使用的脚本: ~/Library/ScriptingAdditions/

注意:如果本地域和/或用户域中还不存在脚本添加文件夹,则必须在其中创建。文件夹名称的两个单词之间没有空格。

使用功能强大但免费的 Satimage 脚本附加组件

AppleScript 对文本处理的支持一直比较有限。Satimage 文本处理库等脚本附加组件填补了这一空白。Satimage 提供了一个基于 AppleScript 的开发环境,名为 Smile [但我们不需要它]。Satimage 的好心人免费提供了许多底层库,我们将在此介绍其中的一个。

Satimage 脚本附加功能涵盖了这些主题以及更多内容:

  • 基本上,Satimage 提供了大部分(如果不是全部的话)"标准 "字符串/文本函数,这些函数是我们大多数人对当今任何软件语言的期望。 遗憾的是,苹果公司在标准 AppleScript 中遗漏了这些功能。
  • 执行简单的查找和替换任务
  • 计算字符串中子串的出现次数
  • 查找和替换文件中的子串
  • 在多个文件中查找和替换
  • 使用正则表达式 (RegEx) 查找和替换文本
  • 批量更改文件名

下载和安装 Satimage 脚本插件

您可以在以下网站找到 Satimage 脚本附加功能: www.satimage.fr/software/en…

Satimage 公司提供一系列脚本附加功能

  1. Satimage osax 3.7.0 (build 398)
  2. Numerics osax 3.7.0 (build 130)
  3. XMLLib osax 3.7.0(构建版 370)
  4. FITS osax 3.7.0(构建版 132)

大家最感兴趣的是第一个 Satimage osax 3.7.0(构建版 398),它提供 "文本搜索和替换命令及正则表达式、科学计算、文件夹同步"。 详情请查看 Satimage.osax 字典

只需下载 Satimage osax 3.7.0(398 版).pkg 文件,双击该文件即可将 Satimage 脚本加载项安装到 /Library/ScriptingAdditions(注意需要管理员密码)。

安装完成后,Satimage 命令就可以使用了,就像 AppleScript 的内置命令一样。

你可能需要查看 Satimage 字典,其中详细描述了 Satimage.osax 中的所有函数/命令/处理程序:www.satimage.fr/software/en…

安装 Satimage.osax 后,可以在脚本编辑器中打开其脚本字典,在文件 > 打开字典...中选择 Satimage,查看其命令。

有关如何使用 Satimage.osax 的一些精彩示例,请参阅以下书籍。

更多信息

有关脚本附加功能和 AppleScript 的更多信息,请参阅这本出色的书籍,它还有 Kindle 版本

Sanderson, Hamish; Rosenthal, Hanaan (2010-05-05). 学习 AppleScript: The Comprehensive Guide to Scripting and Automation on Mac OS X (Learn (Apress)) 尽管本书出版于 2010 年,更新于 2011 年,但截至 2015 年,它仍被视为 AppleScript 方面最好的书籍之一。

参考文献

  1. 《脚本添加》,苹果公司,《AppleScript 语言指南》,2016-01-25
  2. 《AppleScript 脚本添加指南》,苹果公司,1996 年
  3. 《Mac OS X 的脚本增补》,苹果 TN1164,2009 年
  4. 《使用脚本附加功能扩展 AppleScript》,MacTech.com,1994 年

www.deepl.com 翻译