教程
Shotomatic Team
约 10 分钟阅读

如何在 Mac 上用 Automator 重复截图

用 Take Screenshot 和 Loop 搭建 Automator 截图流程;需要按顺序保存文件时,再改用 Shell 操作。

Automator 应用图标以及 Take Screenshot 和 Loop 操作

本指南将带你在 Automator 中搭建重复截图流程。你会添加 Take ScreenshotLoop,测试结果;需要有序文件时使用 Run Shell Script;最后把流程保存成应用。

说明:Shotomatic 由我们开发。本指南会先使用 Automator 自带的截图操作并说明其限制,之后才比较其他应用。

检查 Automator 的屏幕录制权限

这一流程需要 Automator 获得屏幕录制权限。打开系统设置 > 隐私与安全性 > 屏幕与系统音频录制;如果列表中已有 Automator,请将它启用。第一次测试出现权限请求时,请批准;macOS 提示后重新打开 Automator。

只使用 Take Screenshot 或 screencapture 时不需要辅助功能权限。只有流程需要发送按键或控制其他应用时,才会用到该权限。

选择原生操作还是 Shell 操作

添加操作前先决定采用哪条路线。原生操作保持可视化设置;Shell 则能让每次执行分别保存文件,并支持固定坐标。

需求更合适的 Automator 方式
直观地了解流程Take Screenshot + Loop
选择定时全屏或交互式截图Take Screenshot
每次执行都保存为单独文件Run Shell Script + Loop
截取固定矩形-R 的 Run Shell Script
使用连续编号或精确帧数命令行 Shell 循环
按大致时限停止Loop 操作

方案一:使用 Take Screenshot 和 Loop

创建 Workflow

  1. 打开 Automator。
  2. 测试时选择 Workflow
Automator 文档选择器,已选择 Workflow
第一次测试选择 Workflow。它会在 Automator 内运行,保存为应用前仍可修改操作。

找到 Take Screenshot 操作

  1. 在操作资料库中搜索 Take Screenshot
  2. 双击结果,或把它拖入流程区域。
Automator 操作资料库已筛选出 Take Screenshot
搜索操作资料库后,只留下可加入流程的 Take Screenshot 结果。

设置截图和 Loop 操作

  1. 选择截图类型,以及是否使用定时延迟。
  2. 选择结果的保存位置。
  3. 在 Take Screenshot 后添加 Loop
  4. 选择 Loop automatically,并为第一次测试设置较短的停止时长。
  5. 点击 Run
Automator 中的 Take Screenshot 后接 Loop,并设为一分钟后停止
这次测试会延迟 5 秒截取主显示器,再重复流程 1 分钟。

Apple 的 Loop 操作会重复它之前的操作。第一次运行设为 1 分钟,比无限循环更安全。

原生流程适合学习操作顺序和制作简单的可视化自动化。请特别留意保存位置。如果 Take Screenshot 把结果放进剪贴板,每次循环都会替换上一张图,结束时只剩最后一次截图。

要保留完整序列,应选择能把每次结果写入磁盘的保存位置或后续操作,再检查 1 分钟测试生成的前三个文件。如果每次执行都要生成一个可排序文件,请使用下面的 Shell 方法。需要 frame-001.png 这类精确名称时,应使用命令行 Shell 循环。

方案二:组合 Run Shell Script 和 Automator Loop

Apple 提供了 Automator Run Shell Script 操作说明。一个只截一次的简短脚本很适合与 Automator 自带 Loop 搭配:

  1. 新建另一个 Workflow。
  2. 搜索并添加 Run Shell Script
  3. 把 Shell 设为 /bin/zsh
  4. 粘贴脚本。
  5. 在 Run Shell Script 后添加 Loop
  6. 选择 Loop automatically,测试时设为 1 分钟后停止。
  7. 点击 Run,并检查输出文件夹。
Automator Run Shell Script 操作设置为使用 zsh 执行截图命令
将 Shell 设为 /bin/zsh,再粘贴下面的完整脚本。
RUN_DIR="$HOME/Desktop/automator-captures"
mkdir -p "$RUN_DIR"

STAMP=$(date +%Y%m%d-%H%M%S)
screencapture -x -m "$RUN_DIR/capture-$STAMP.png"
sleep 5

每次执行都会用时间戳保存一张主显示器截图,等待 5 秒,再让 Loop 重复流程。时间戳能让文件按时间排序,但并不是连续帧编号。

Automator 的 Loop 提供的是大致时限。需要精确帧数或 frame-001.png 这类名称时,应使用命令行方法。

更多 screencapture 参数、格式、翻页和长时间运行控制,请参阅 Mac 命令行截图指南

保存可重复使用的 Automator 应用

Automator 文档类型在新建文档时选择。Workflow 正常运行后,新建一个 Application 文档,把测试好的操作复制进去,并使用 Dashboard Screenshot Run 这类具体名称保存。

可双击运行的应用很方便,但也可能立即开始截图。第一次延迟要足够长,方便摆放目标窗口;输出文件夹也应在流程中清楚可见。

排查流程问题

问题解决方法
只剩最后一张截图不要循环使用只写入剪贴板的目标;保留每次结果,或使用时间戳 Shell 输出
截图为空在“屏幕与系统音频录制”中允许 Automator,重新打开后再试
流程重复时间超过预期测试时为 Loop 设置较短的停止时长
Shell 输出覆盖旧图片每个文件名保留时间戳;需要连续编号时改用单个 Shell 循环
截图区域错误重新摆放窗口或更新 -R,再测试三帧
流程看起来卡住定时或交互式截图可能正在等待输入,请检查屏幕和 Automator 日志

Automator 不够用时

Automator 适合少量、稳定的流程。如果每次都要换窗口、按键、帧数或时长,或者需要检查步骤和其他导出格式,专用截图应用可能更容易管理。

如果想在一个界面中调整这些选项,Shotomatic 会把截图设置、画面检查和导出放在一起。请参阅 Shotomatic 如何在 Mac 上完成截图自动化。如果主要目标是生成有序文档,请参阅在 Mac 上把截图保存为 PDF

常见问题

Automator 能在 Mac 上重复截图吗?

可以。先添加 Take Screenshot,再添加 Loop。这个组合适合可视化流程;如果每次都要保存为单独的时间戳文件,可以使用 Shell 操作。

为什么 Automator 截图流程只保留剪贴板中的最后一张图?

每次循环都会替换剪贴板的上一项内容。请为每次截图使用唯一文件名,或通过 Run Shell Script 保存带时间戳的连续文件。

应该使用 Automator 的 Loop,还是 Shell 循环?

希望流程保持可视化时使用 Loop。文件名、帧数、截图坐标和时间必须放在一起精确控制时,使用 Shell 循环。

可以把流程保存成应用吗?

可以。开始时直接创建 Application 文档,或把测试好的流程重新建成 Application,即可通过双击运行。

相关文章

查看更多文章

如何用 Mac 内置工具自动截图

使用 screencapture、Automator 或“快捷指令”在 Mac 上自动截图,包括权限设置、安全循环与故障排查。

约 10 分钟阅读
用于重复截图的 Mac 多显示器桌面

在 Mac 上用命令行自动截图

使用 macOS screencapture 循环完成全屏、固定区域和翻页截图,并正确命名文件、排查常见问题。

约 8 分钟阅读
Mac 终端应用图标和 screencapture 循环

把重复截图整理成可交付成果

Shotomatic 可在 Mac 上捕捉、整理并导出截图会话。

如何在 Mac 上用 Automator 重复截图 | 博客 | Shotomatic