# Automator 手册第一章：Automator 中的自动化动作

> 本文公开全文。

原文：https://utgd.net/article/20180

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

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

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

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

## 所有动作的基础：Workflow

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

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

- 输入内容：给 Workflow 提供原料，可以是文件、文本图片等各种格式。

- 处理步骤：处理输入的内容，可以串联多个步骤。

- 输出结果：返回处理的结果，可以隐藏起来不给用户看。

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

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

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

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

## 开箱即用：Application

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

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

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

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

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

- 不接收文件，直接双击运行

- 接收文件，把文件拖到 Application 图标上运行

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

### 双击运行的 Application

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

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

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

### 拖拽处理文件的 Application

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

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

\> unrar 解压文件：动作下载 🔗（需要先安装 unrar）

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

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

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

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

- 打开新图标图片，全选复制

- 选中 Application 图标，按住 ⌘Command \- I 查看详细信息

- 按住 ⌘Command \- V，把图标粘到图片信息栏上

## 快速操作：Quick Action

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

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

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

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

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

- Touch Bar

- Finder

- 快捷键

- 右键菜单

- 应用服务菜单

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

### Finder

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

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

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

3、快速查看界面

4、预览工具界面

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

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

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

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

### 快捷键

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

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

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

### 右键菜单

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

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

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

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

- 移除一部分动作：打开快捷键设置界面，取消勾选快速操作动作前的选框，这样动作就会从右键菜单中消失。如果你在使用第三方自动化工具（比如 LaunchBar、Keyboard Maestro），也可以转移一部分快速操作过去，减轻右键菜单的压力。

- 为常用动作加数字前缀：加完前缀后再展开右键菜单，点击数字键就能快速定位对应动作，实现“盲操作”，免得在一堆功能选项里翻找。当然英文字母开头的动作也可以用字母键定位，但是容易和系统功能选项冲突，用数字则可以避免撞车。

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

- 文本处理类： 正则文本替换 普通引号转直角引号 简体中文转繁体中文（系统自带） 繁体中文转简体中文（系统自带）

- 文件处理类： 去除压缩文件中的缓存 去除 Kindle 文件夹的缓存

### 应用的服务菜单

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

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

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

## 文件夹操作

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

- 半自动动作：需要用户手动启用，如 Automator Application，把文件拖上去可以进行批量处理。

- 全自动动作：完全不需要用户干预，如文件夹动作，检测到文件夹里有动静就可以能执行预设的操作。

### 本职工作：自动处理文件

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

- 目标文件夹（必选）：需要监测的文件夹，比如下载文件夹。未选择好文件夹前，动作是无法保存的。每次目标文件夹里出现新文件或者文件发生改动时，文件夹操作就会被触发。

- 条件（可选）：过滤出需要处理的文件，这里只需要过滤出 Zip 文件。

- 动作（必选）：执行的操作，比如说调用系统解压工具进行解压。

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

\> 动作下载 🔗

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

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

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

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

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

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

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

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

## 日历提醒

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

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

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

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

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

## 图像捕捉插件

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

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

- 自动操作：“连接到此“相机”时候打开”菜单，一检测到相机或手机就会触发动作。

- 手动操作：“导出到”菜单，需要手动点击运行动作。

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

\> 动作下载 🔗

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

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

## 打印插件

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

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

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

- 打标签

- 压缩 PDF 中的图片

- 移除文件名后缀

- ……

## 听写命令

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

\> 动作下载 🔗

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

- 启用听写：在“设置 \- 键盘 \- 听写”中打开听写，而且要勾选听写优化（这样就能离线使用了），然后选择你想用的语言。Mac 目前不支持中英混输，所以命令关键词和语言需保持一致。

- 启用语音控制：来到“设置 \- 辅助功能 \- 听写”，勾上“启用听写关键词短语”并填写喜欢的短语，这样设置好后就不需要快捷键，直接说出短语便能触发动作。

- 启用自定义命令：进到“听写命令”中勾选“启用高级命令”，随即勾上刚才制作的听写命令。如果你比较讲究，还可以在边上为不同应用设置专用命令。

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

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

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

## 余项：如何找到 Automator 动作？

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

---

[前往标准阅读页](https://utgd.net/article/20180?audience=web)
