article_image

按:本系列文章写于我本科的课余时间,当时 Automator 还是 macOS 上最重要的自动化工具之一。白驹过隙,如今原生自动化已让位于 Shortcuts,但 Automator 仍然远远比后来者稳定,且从 Automator 这款历史悠久的工具入手,或许更能理解 macOS 自动化——而不是站在 iOS 的外来者视角。

由于平时写的杂文实在过多,根本来不及发,本系列文章就一拖再拖,直到 Automator 本身都成了活化石。虑及选题古老,我将系列文章全部免费发布。

Automator 是一个泛用型的自动化工具。

能叫得上名字的自动化工具,基本都有自成一派的操作方式,许多时候就是这些匠心独运的设计,让这些工具获得了一批忠实用户。但是对于普通人来说,太独特的操作方式也是一种门槛,比如只支持键入西文字母的 LaunchBar、没有图形界面的 Hammerspoon……很多新手一时无法接受它的操作,最后和这些自动化明星擦肩而过。

**相比之下,Automator 一共提供了 8 种类型的自动化动作,支持的操作方式覆盖了系统的角角落落,**无论你习惯快捷键、图形菜单,还是希望电脑在后台默默帮你执行任务,或者说句话就能控制 Mac,Automator 都提供了对应的选择。

Alt text
Image 23-10-18 下午9-40

打开 Automator,你就会看到一个新建动作的界面,列出了整整 8 种自动化动作。在后面的章节中,我们将具体介绍自动化动作的功能,而本章先介绍各类动作的使用场景,帮你找到适合的动作类型1

Alt text
Automator 中的 8 种动作

所有动作的基础:Workflow

Workflow,即工作流程,可以视为所有动作的基础,其他种类的动作都是 Workflow 套上各种外壳后的成品。实际使用中,我们很少会直接用 Workflow,但是通过了解这枚“内核”,我们可以对 Automator 的工作方式有更好的理解,再去学习其他类型的动作就能轻车熟路。

Alt text
Workflow

多数 Workflow 的工作方式都像工厂车间一样明晰,常见如批量文件重命名、更改图片尺寸、修复文本乱码……这些动作都是“车间型”的动作。

  1. 输入内容:给 Workflow 提供原料,可以是文件、文本图片等各种格式。
  2. 处理步骤:处理输入的内容,可以串联多个步骤。
  3. 输出结果:返回处理的结果,可以隐藏起来不给用户看。
Alt text
Workflow 工作方式

步骤和输出都是任何 Automator 动作必不可少的组成部分——哪怕运行出错,Workflow 也会丢给你一个出错提醒,不至于一声不吭。但输入则不是必须的,我们以后会遇到一些动作,它们简单到只是点了一个菜单项目,相当于一颗快捷按钮,就用不到输入。

Workflow 的原理就是这么简单。一次编写,长期享受。

等到实际制作自动化动作时,还要有这样一种态度:一个 Automator 动作做完以后,Automator 就“死了”,我们只需要用自己最熟悉、最喜欢的方式运行动作,而不必再打开 Automator。以后的动作,都可以独立运行。

另外,作为各类动作基础的 Workflow 也可以随时转换成别的动作(其实任何动作都能够互相转换)。方法是在 Automator 里按下 ⇧Shift - ⌥Option - ⌘Command - C 进行格式转换,然后保存。

Alt text
转换动作类型

开箱即用:Application

Application 是一个打包好的独立应用,我们甚至可以为它搭一个简单的图形窗口让它看起来更像一个 App。Application 最大的优势就是可以独立运行,不用安装、开箱即用

Alt text
Application 就是一个独立的应用

我在以前的文章里分享过不少 Automator 动作,不少都是 Application 格式。如果有人拜托你做一个自动化动作,你不想解释 Automator 怎么用的话,一般给 TA Application 版本是最省事的。

同时,Application 还可以和 Workflow 直接互相转换。打开其中任何一类动作,用 ⇧Shift - ⌘Command - S 另存为新动作时,都可以看到格式选择。

Alt text
可以把 Application 另存为 Workflow

另外,下载别人提供的 Application 时,macOS 很可能会把它识别为未认证的软件而阻止运行,需要按住 ⌃Control 的同时右键开启 Application。特别注意,如果你做了一个需要各种权限的 Automator 动作,务必把它保存成独立的 Application 格式,以便获取单独授权,不然每次切换应用就要重复授权,不方便也不安全。

Alt text
按住 ⌃Control 再打开

Application 也有分类。按照是否需要接收输入,Application 主要有两类操作方式:

  1. 不接收文件,直接双击运行
  2. 接收文件,把文件拖到 Application 图标上运行

下面我们来看看两类 Application 各自的使用场景。

双击运行的 Application

Application 可以只当作一颗按钮,按下去、执行完,了事,不需要像一个程序一样有完整的输入、输出2。下面这个 Application,点一点就能获取当日的 Simple Desktop(一个极简主义壁纸分享网站)上的图片并设为桌面背景:

Alt text
获取当日 Simple Desktop 并设为壁纸

> 获取当日 Simple Desktop 并设为壁纸:动作下载 🔗

不过把所有动作都打包成 Application 也是有问题的,像随机放歌、给电脑“灌咖啡”(防休眠)等常用功能, 放进 Touch Bar、绑上快捷键会更顺手。自己使用的话,我只把使用率不高的动作保存成 Application,偶尔要用了就临时放到 Dock 上,平时不占用宝贵的快捷键键位。

Alt text
要用的时候再临时放到 Dock 上

拖拽处理文件的 Application

拖拽在 macOS 上是一个很自然的操作,通过拖拽来处理文件,也比在脚本编辑器里对付输入输出要来得直观。

有段时间我需要频繁解压 RAR 格式的压缩包,于是做了一个用于解压的 unrar.app,把压缩包拖上去就能提取出文件。比起在 Automator 里使用 Workflow,把文件拖到 Application 上看似没快多少,不过积少成多,每天处理的文件多了,明显感到拖拽更省力。

Alt text
通过 Automator 解压 RAR 文件

> unrar 解压文件:动作下载 🔗(需要先安装 unrar

Application 是一个货真价实的 App,所以还有一些衍生用法,比如设为特定格式文件的默认打开方式。在文件的详情界面里(通过 ⌘Command - I 打开),可以设置打开方式(Open with)并且选择“Change All”,让其他相同格式的文件以后都由自定义的 App 来开启。我现在下载的 RAR,双击就会调用 unrar.app 来解压,连托拽操作也省了。我还做了一个 Application 来专门解压 ZIP 文件,因为原生的解压工具实在蹩脚,遇到压缩包文件名乱码的情况就会报错,我只好另寻高明。

Alt text
把自制 Application 设为压缩包的默认打开方式

进一步搭配文件自动化处理工具 Hazel,还可以实现“下载 RAR 压缩包后,自动用 unrar.app 解压文件到桌面”的效果,一气呵成,不过这些进阶操作我们暂不展开。

**Application 还有一种比较有趣的用法,就是嵌进 Finder 工具栏。**我们可以按住 ⌘Command 键再把 Application 拖到 Finder 工具栏上,方便使用的同时,也免得占用 Dock 空间(多数人的 Dock 已经挤满 App 了)。

Alt text
把 Automator 嵌进 Finder 工具栏

不过 Automator Application 的图标都是统一的,往 Finder 工具栏上放多后比较容易搞混。所幸我们可以自定义 Application 的图标:

  1. 打开新图标图片,全选复制
  2. 选中 Application 图标,按住 ⌘Command - I 查看详细信息
  3. 按住 ⌘Command - V,把图标粘到图片信息栏上
Alt text
详细信息界面和替换后的效果

快速操作:Quick Action

快速操作(Quick Action)的前身是“服务(Services)”。

和其他的 Automator 动作相比,快速操作最明显的优势是可以接收各种形式的输入,从文本、链接、文件、图片、视频到 Safari 页面都通吃,可以贯穿整个系统。

Alt text
快速操作可以接收多种输入

**和 Application 一样,快速操作也不是非得接收输入。**下面是一个下载当前网页所有图片的快速操作,它就不接受任何输入,而是通过步骤“从 Safari 浏览器中获得当前页面”直接获取数据。这个动作适合放在 Touch Bar 上,遇到全是好看壁纸的网页,就点击运行、把图扒下来。

Alt text
Automator 快速操作也可以没有输入

快速操作也有一个缺点,就是修改和卸载比较麻烦,需要进入 ~/Library/Services/ 目录手动编辑或删除对应的 .workflow 文件。所以给别人分享 Automator 动作时,尽量还是提供“随用随删”、“绿色面安装”的 Application。

快速操作在 macOS Mojave 中得到了不小的提升,把自动化入口带到了 Touch Bar 和 Finder 上。算上旧有的操作方式,升级到 macOS 10.14 之后我们总共可以选择 5 种不同方式来启动快速操作:

  1. Touch Bar
  2. Finder
  3. 快捷键
  4. 右键菜单
  5. 应用服务菜单
Alt text
快速操作的多种启动方式

Touch Bar 刚刚起步,暂时没有太特别的用法,我们重点看一下后面几种。

Finder

Finder 的角角落落也是 Automator 在 macOS Mojave 中开辟的新战地。在 Application 那一节,我们就提到过 Application 可以放进 Finder 工具栏,便于随时拖拽处理文件;而快速操作则更进一步,可以直接在各种文件预览界面下取用

1、Finder 分栏视图(可以通过快捷键 ⌘Command -3 启用)

Alt text
快速操作 Finder 分栏视图

2、Finder 画廊视图(可以通过快捷键 ⌘Command -4 启用)

Alt text
快速操作 Finder 画廊视图

3、快速查看界面

Alt text
快速操作 快速查看

4、预览工具界面

Alt text
快速操作 预览工具

稍加留意,不难发现,快速操作图标只有在预览/查看特定类型的文件时才会出现,比如默认状态下3打开 PDF 可以看到“标记”动作,而预览视频时则有“旋转”“裁剪”两个可选项。

在自定义快速操作时,我们就可以限制它接受的输入类型,这样动作就**只在预览对应类型文件时才出现,**不该出场时不会挤占窗口空间。

Alt text
限制快速操作的输入类型

和上一节制作 Touch Bar 按钮一样,制作 Finder 快速操作时也能自定义图标,让动作更容易识别。

Alt text
自定义快速操作图标

除了自定义的动作,还有一些快速操作来自某些 App,比如 Yoink 的文件收集操作、CleanMyMac 的文件清理操作,也可以视需求自己添加。

快捷键

自定义快捷键素来是快速操作最大的优势之一,其他类型的动作都没有原生快捷键的支持。

在系统设置的“键盘 - 快捷键 - 服务”界面,你可以点击其中快速操作(还是沿用了“服务”的旧称)后的“无”,为它们录入快捷键。

Alt text
为快速操作设置快捷键

系统快捷键的一个问题是没有冲突提醒,你只能在通过“嘟嘟”的系统错误提示音来得知自己设置了重复的快捷键。我的做法是把所有快捷键先都去掉,然后精选几个使用频率最高的动作绑上快捷键。

右键菜单

每个新建、安装好的快速操作都会默认出现在右键菜单。 目前右键菜单中同时存在 Quick Action 和 Sevices,显示方式比较混乱,希望以后苹果能做出明确的区分。Quick Action 的配置和 Finder 一节一致,这一节主要讲 Services。

展开右键菜单后,我们只会看见和输入内容类型匹配的快速操作,比如选中一段文字,就只会看到接收“文本”的动作:

Alt text
和文本有关的快速操作

但所有快速操作都默认往右键菜单里挤,也会给使用带来麻烦。动作太多后点选就很麻烦,要是动作多到屏幕上放不下,系统干脆会把它们折叠起来、给你一个二级菜单,使用就更麻烦。

Alt text
动作太多,找起来很麻烦

另外,在不用应用、不同场景里菜单选项位置会变化,很难训练出肌肉记忆。为了避免右键菜单变成动作的垃圾场,我们可以做两件事:

  1. 移除一部分动作:打开快捷键设置界面,取消勾选快速操作动作前的选框,这样动作就会从右键菜单中消失。如果你在使用第三方自动化工具(比如 LaunchBar、Keyboard Maestro),也可以转移一部分快速操作过去,减轻右键菜单的压力。
  2. 为常用动作加数字前缀:加完前缀后再展开右键菜单,点击数字键就能快速定位对应动作,实现“盲操作”,免得在一堆功能选项里翻找。当然英文字母开头的动作也可以用字母键定位,但是容易和系统功能选项冲突,用数字则可以避免撞车4
Alt text
取消勾选快速操作
Alt text
点击数字键,直接定位到对应数字打头的动作

为了充分发挥快速操作的长处,一般我们会在右键菜单留下能处理文本或文件的动作。下面提供我保留的功能作为参考:

  • 文本处理类:
    • 正则文本替换
    • 普通引号转直角引号
    • 简体中文转繁体中文(系统自带)
    • 繁体中文转简体中文(系统自带)
  • 文件处理类:
    • 去除压缩文件中的缓存
    • 去除 Kindle 文件夹的缓存

应用的服务菜单

为快速操作设置,你可能已经注意到了除了输入类型,还可以设置动作能够起作用的应用程序,让动作只出现在有必要的地方。

Alt text
设置快速操作出现在哪些应用

让部分快速操作只出现在有必要的个别应用里,也是一个精简动作菜单的方法。像是“下载 Safari 页面上的图片”“获取 Markdown 格式的链接”等动作,在 Safari 浏览器以外的地方出现就没什么意义,那我们在一开始就可以限制它们只出现在 Safari 里。

另外,设置应用范围也是缓解快捷键冲突的一个办法。不少人同时使用 Safari 和 Chrome 两个浏览器,可能在两个应用里都需要“拷贝 Markdown 格式链接”这一功能,但它们是由两个不同的 Automator 动作实现的;此时就能让两个动作各自负责一个浏览器,不发生冲突和重复,也能在不同浏览器里保持同样的操作习惯

Alt text
可以为不同的应用设置对应的快速操作

文件夹操作

Alt text
文件夹操作

和多数 Automator 动作不同,文件夹操作可以说是“全自动操作”(另一个全自动的是日历提醒,我们下一节再说)。

  • 半自动动作:需要用户手动启用,如 Automator Application,把文件拖上去可以进行批量处理。
  • 全自动动作:完全不需要用户干预,如文件夹动作,检测到文件夹里有动静就可以能执行预设的操作。

本职工作:自动处理文件

文件夹操作,就是用“条件”来代替用户操作,连“扣板机”这一步也省了。而它的运行机制,也比一般的动作更完整一些。以“自动解压压缩包”的动作为例,这个文件夹操作可以分作 3 个部分:

  1. 目标文件夹(必选):需要监测的文件夹,比如下载文件夹。未选择好文件夹前,动作是无法保存的。每次目标文件夹里出现新文件或者文件发生改动时,文件夹操作就会被触发。
  2. 条件(可选):过滤出需要处理的文件,这里只需要过滤出 Zip 文件。
  3. 动作(必选):执行的操作,比如说调用系统解压工具进行解压。
Alt text
文件夹操作的组成部分

上面这个文件夹操作,每次监测到下载文件夹里出现了新压缩包,就会自动进行解压:

> 动作下载 🔗

打开上面这个动作后,系统会提示你选一个目标文件夹,选好后安装(Install)即可使用。

Alt text
安装文件夹操作

当然,做好的文件夹操作也可以套用到别的文件夹上,而不用仅限于目标文件夹。不用修改原动作,我们在 Finder 里就能套用现有的文件夹操作。在想要监测的文件夹上点击右键,选择“文件夹操作设置…(Folder Action Setup…)”,我们就能看到文件夹操作的配置界面。

Alt text
文件夹操作配置界面

左侧列出的是正在被监测的文件夹,右侧是各个文件夹所对应的动作。接下来的事情就简单了,点击两栏下方的加号,就能把已安装的文件夹操作套用上去。系统本身提供了非常多的动作,包含了常用的图片编辑和格式转换,平时没事不妨多看看,说不定就能发现一个自己需要的功能,避免重复造轮子。

Alt text
系统也提供了大量的文件夹操作

延伸用法:充当其他动作的“扳机”

除了自动处理文件,文件夹操作还能充当其他动作的扳机。比如说,和 Shortcuts 一起打造一个遥控器,通过手机遥控电脑休眠

Alt text
一键遥控 Mac 休眠
暂不提供下载,孤零零一个 Automator 动作用不了,需要手机上配合,以后专门开章节讲文件夹操作。

原理很简单:监测 iCloud 特定文件夹中出现新文件(捷径创建的),就让文件夹操作执行一段 Shell 脚本,命令 Mac 休眠。

Alt text
遥控 Mac 休眠原理图

此时发生变动的文件已经不是真正需要处理的对象,文件夹操作处理的也不是文件,只是根据文件的变动,巧妙触发了其他操作。后面的章节里,我们会完整地做一遍这个“遥控器”动作。

Hum 曾介绍过类似的方法,同样可以用手机遥控电脑,我这里是用 Automator 和 iCloud 搭建的简单免费版本。

日历提醒

顾名思义,日历提醒就是 Automator 和日历的结合,可以在指定时间运行 Automator 动作。

Alt text
日历提醒

和往常一样创建一个日历提醒动作并保存后,日历应用中就会出现一个“Automator”日历,并且附带了一则日程,能够定时打开刚才做好的新动作。

**文件备份是日历提醒最经典的一个应用场景。**下面是一个备份输入法配置文件的动作,由于输入法(例子里是鼠须管)本身不支持备份或同步,所以就借助了 Automator。Calibre 书库、Sketch 插件、LaunchBar 动作……也都可以借助日历提醒实现定期备份。

Alt text
定期备份文件的日历提醒动作

**日历提醒的时间可以直接在日程中修改,而不是打开 Automator。**最常见的备份动作建议在空闲时间进行,避免占用太多电脑资源。至于备份频率,像是例子中的配置文件一周一次就差不多;如果是工作文件,则每天自动备份+时不时手动备份才保险。不过要注意,日历提醒在 Mac 休眠或关机期间是不会启动的,所以在你睡觉的时候,Automator 也会休息……

Alt text
设置日历提醒的时间和频率

动作被添加时,默认的启动时间是添加那一刻,所以新动作都会被执行一遍,如果当前不想它们运行的话,可以先创建一个空动作,保存好、设置好时间后再添加具体步骤。

图像捕捉插件

图像捕捉,而图像捕捉插件则是专门为这个应用准备的 Automator 动作。不玩摄影的读者估计很少接触这个应用,其实,每次你把 iPhone 连上电脑时弹出来的那个烦人应用就是图像捕捉了……

Alt text
图像捕捉插件和图像捕捉应用

图像捕捉插件的功能和其他 Automator 动作无异,但是插件只会出现在图像捕捉应用的菜单中。具体来讲,图像捕捉插件有自动和手动两种运行方式:

  • 自动操作:“连接到此“相机”时候打开”菜单,一检测到相机或手机就会触发动作。
  • 手动操作:“导出到”菜单,需要手动点击运行动作。
Alt text
连接到此“相机”时候打开
Alt text
导出到

不同的相机或手机可以设置不同的自动操作,比如检测到 iPhone,就把照片备份到“手机摄影”文件夹;而检测到 SONY 相机,则把照片拷贝进“SONY”文件夹。对于拥有多部相机的人来说,图像捕捉插件是一个自动整理照片的好办法。

> 动作下载 🔗

上面这个照片整理插件比较基础,只是把照片移动了一下位置。以后的章节里我们还可以根据图片的大小、拍摄日期等属性进一步进行整理,比如重命名、按日期归档到文件夹,等等。

对了,如果你不需要图像捕捉应用自己弹出来,可以在应用界面对应设备选项中勾选“不打开任何应用程序”。

Alt text
取消自动弹出图像捕捉插件应用

打印插件

Alt text
打印插件

打印插件只负责处理 PDF 文件。在任何一个应用的打印界面,都可以使用已安装的打印插件。

Alt text
Safari 打印界面中的打印插件

在编辑菜单里面,还可以找到系统和第三方应用自带的打印插件。还是那句话,没事儿多看看这些现成的功能,没准就有你需要的轮子。

Alt text
编辑打印插件菜单

那么,哪些动作适合做成打印插件?只要是频繁对 PDF 文件进行的操作,都可以考虑用打印插件的形式来进行:

  • 打标签
  • 压缩 PDF 中的图片
  • 移除文件名后缀
  • ……
Alt text
移除标题的后缀

听写命令

Alt text
听写命令

听写命令是 macOS 版的 Siri Shortcuts,可以通过语音来控制 Mac。比如,隔空喊话开启暗色模式(需要先用快捷键开启“听写”)。创建听写命令的步骤和其他 Automator 动作类似,不再赘述,唯一需要注意的是,听写命令的关键词(触发词)必须填上。方便起见,创建动作的同时最好直接勾选“命令已经启用”。

Alt text
记得填写听写命令的关键词

> 动作下载 🔗

想启用听写命令的话,光有一个动作不够,还要去系统设置里配置一下。

  1. 启用听写:在“设置 - 键盘 - 听写”中打开听写,而且要勾选听写优化(这样就能离线使用了),然后选择你想用的语言。Mac 目前不支持中英混输,所以命令关键词和语言需保持一致。
  2. 启用语音控制:来到“设置 - 辅助功能 - 听写”,勾上“启用听写关键词短语”并填写喜欢的短语,这样设置好后就不需要快捷键,直接说出短语便能触发动作。
  3. 启用自定义命令:进到“听写命令”中勾选“启用高级命令”,随即勾上刚才制作的听写命令。如果你比较讲究,还可以在边上为不同应用设置专用命令。

配置好后有两种触发方式。忙了一通,推荐的方式是完全语音控制。直接说“嘿麦克,切换主题”,动作就运行了。

第一种是在任何地方按下快捷键(我用的是双击 Fn),可以看到一只等待语言命令的小浮窗。说出命令,对应的动作也会运行。 快捷键一般在语音控制没奏效时拿来救场,总体感觉逊很多。

Alt text
听写命令小浮窗

借助 Automator 的动作和脚本支持,听写命令自定义空间比较大,而且能够离线使用,目前来看适合作为 Siri 的有力补充。

余项:如何找到 Automator 动作?

不同类型的 Automator 分散在各个文件夹中,像快速操作 /Users/apple/Library/Services  还躲在系统文件夹里,偶尔想修改动作,一时半会儿还找不到。其实有个很取巧的办法来找 Automator 动作:在 Automator 应用中四指下滑开启 App Espose,即可看到最近打开/修改过的动作。

Alt text
快速找到 Automator 动作

  1. 本系列文章中所有场景较具针对性的动作,都会标出推荐的动作类型。
  2. 其实也有,只是我们用不到的话暂时可以不管。
  3. 没安装自定义快速操作时。
  4. 但是为了演示方便,本系列文章多数动作还是会用中文命名。

author_avatar

Lawyer, macOS/iOS Automation Amateur