摘要:MacOS 上有一个非常强大的工具 Automator,它躲在实用工具文件夹里时常被人忽视,且因其机器人的外表显得十分神秘。Automator,顾名思义就是帮助你创建并执行流程化的程序操作,以使得你能够在一些繁琐或者需要重复操作的工作上可以利用它代替你自动执行。它不仅支持模块化的操作,更支持配合 AppleScript 等脚本,从而能实现无穷尽的操作组合,让你不需要学习专业的应用程序开发方法便能快速制作出一个效率提升的小程序,或者流程 Workflow。

1 显示隐藏文件开关

2 解决 Yosemite 蓝牙问题

3 退出所有应用程序

4 批量文件重命名

5 批量图片尺寸大小调整

6 创建不含 Mac OS X 资源文件的 Zip 压缩包

7 创建 RamDisk 内存高速缓存磁盘

8 保存全部网页上的全部图片

9 创建一个 App Iconset

10 开机自动连接 VPN

11 附加内容

显示隐藏文件开关

有时候我们希望在 Finder 直接查看一些以“.”开头的隐藏文件,现在我们能直接通过创建 Finder 中的服务来实现快速开启或关闭查看隐藏文件的功能。

10 个 Automator Workflow 小教程-稀土区

在 Automator 中创建一个服务,并按照如下图片和代码来设置,保存即可。

10 个 Automator Workflow 小教程-稀土区
if [ defaults read com.apple.finder AppleShowAllFiles != "TRUE" ]
then
defaults write com.apple.finder AppleShowAllFiles TRUE
else
defaults write com.apple.finder AppleShowAllFiles FALSE
fi
killall Finder

解决 Yosemite 蓝牙问题

这是一个出现在 OS X 系统上的 bug,表现是休眠唤醒蓝牙中断、合盖开盖蓝牙丢失、蓝牙服务突然不可用等情况。在上网搜索大量资料、联系 Apple 客服后,仍不能解决问题,一般只能通过重新启动系统来解决。现在可以通过 Automator 来解决。

在 Automator 创建一个应用程序,选择运行 AppleScript,按照如下方式和代码设置,保存为应用。下次蓝牙失灵时,双击运行即可修复。

10 个 Automator Workflow 小教程-稀土区
on run {input, parameters}

do shell script "kextunload -b com.apple.iokit.BroadcomBluetoothHostControllerUSBTransport;

kextload -b com.apple.iokit.BroadcomBluetoothHostControllerUSBTransport" with administrator privileges

return input

end run

退出所有应用程序

要在 Mac OS X 下退出所有应用程序,创建一个 Automator 应用,按照下面的方式,直接拖拽“退出所有应用程序”到右边即可。保存后,双击创建的应用就能退出所有运行的应用程序。

10 个 Automator Workflow 小教程-稀土区

批量文件重命名

Finder 原生不支持文件的批量重命名。事实上你可以利用 Automator 做到,而且能做得更好、更有逻辑。打开 Automator,创建一个流程(Workflow),按如下方法设置,并点击运行即可。可以看到,你不仅可以批量重命名,还能嵌入编号、日期时间等信息,更加强大。

10 个 Automator Workflow 小教程-稀土区

批量图片尺寸大小调整

一个一个地将若干图片文件调整到一致的尺寸是一个很令人不耐烦的过程。在 Automator 创建一个流程(Workflow),并按如下设置,并点击运行,便能将所有选择的图片都缩放到指定的大小或百分比。

10 个 Automator Workflow 小教程-稀土区

创建不含 Mac OS X 资源文件的 Zip 压缩包

通常在 Mac 下创建的 Zip 文档到 windows 下解压,将会得到令人费解的 .DS_Store 、_MACOSX 类 Mac OS X 资源文件。我们更希望能避免这样的问题,除了使用类似 Keka 的压缩 App 之外,还能借助 Automator 做到。按照如下图片和代码创建一个服务,注意“传递输入”选择“作为自变量”,保存即可完成。下次使用只需选择一个文件夹,在菜单中选择这个选项即可。

10 个 Automator Workflow 小教程-稀土区
for folder in "\(@"
do
directory="\)(dirname \({folder} )"
name="\)(basename \({folder} )"
cd \){directory}
zip -r \({directory}/\){name}.zip ./${name} -x .DS_Store -x /__MACOSX/
done
10 个 Automator Workflow 小教程-稀土区

创建 RamDisk 内存高速缓存磁盘

RamDisk 是指将内存上的一块空间用作硬盘,以获得上千兆每秒的读写速度,例如可以用于 OS X 的缓存磁盘。按照下面的方法创建一个 Automator 应用,保存即可。需要 RamDisk 时,只需要双击即可创建,不需要再使用类似 iRamDisk 的收费软件了。

你可以通过修改参数来改变磁盘的大小、名字。

如果需要将例如 Safari 的缓存文件夹移至此处,只需删除原本的 ~/Library/Caches/com.apple.Safari,并创建一个同名替身文件指向这个创建的虚拟高速缓存磁盘中的某个文件夹就可以了。

10 个 Automator Workflow 小教程-稀土区

!/bin/sh

DISK_NAME=RamDisk
MOUNT_PATH=/Volumes/\(DISK_NAME
DISK_SPACE=1000
if [ ! -e \)MOUNT_PATH ]; then
diskutil erasevolume HFS+ \(DISK_NAME `hdiutil attach -nomount ram://\)(($DISK_SPACE10242))`
fi

保存全部网页上的全部图片

如果一个网页上存在的大量图片想要全部获取下来,Automator 也能做到。按照如下方法在 Automator 创建一个服务,你就可以在 safari 中使用它了。

10 个 Automator Workflow 小教程-稀土区
10 个 Automator Workflow 小教程-稀土区

创建一个 App Iconset

通过 Automator。你可以根据一张大小 1024px 的图片创建可以用于开发应用程序图标的 App Iconset。这个 Workflow 已经有 @sparanoid 同学为我们做好了,你可以 github.com/sparanoid/automator-workflows#create-app-iconset 直接下载。下载后,把这个 Workflow 拽到 ~/Library/Services 里即可使用。

10 个 Automator Workflow 小教程-稀土区

开机自动连接 VPN

如果你有开机自动连接 VPN 的需要,不妨将它做成一个开机自启的 Automator App。首先按照常规方法设置 VPN,记住服务名,例如 SampleVPN。

10 个 Automator Workflow 小教程-稀土区

在 Automator 创建应用程序,选择运行 AppleScript,如下图和代码所示。

10 个 Automator Workflow 小教程-稀土区
tell application "System Events"
tell current location of network preferences
set VPN to "SampleVPN"
set VPNActive to connected of current configuration of service VPN
if VPNActive then
disconnect service VPN
else
connect service VPN
end if
end tell
end tell

其中,SampleVPN 是你的 VPN 服务名。最后,把这个生成的 App 拖拽到[系统偏好设置][用户与群组][登陆项]里的表格里就可以了。

此方法来自duran.im

附加内容

除了上述的 10 个经典 Automator 流程以外,你还可以到 junecloud.com/software/mac/junecloud-automator-actions.htmlgithub.com/sparanoid/automator-workflows 查看到更多好用的技巧和现成的 Workflow 下载。如果你有更好的创意,希望你也能大方分享出来。