=Start=
缘由:
简单整理一下近期看到的和自动操作(Automator)有关的使用技巧,方便后面有需要的时候参考。
简单来说就是,macOS上的自动操作当前还适合的场景为:
- PDF文件处理(拆分、合并)
- 监控特定文件夹的文件新增情况然后触发特定操作(遥控触发器)
- 日历提醒(由日历中的日程触发运行,它们不接收任何输入)
- 将shell脚本包装成一个“应用程序”
其它的还有哪些合适的场景后面实际用到了再逐步补充。
正文:
参考解答:
macOS设备上的自动操作(Automator)是一个强大的工具,它允许用户创建自定义的工作流来自动化日常任务。以下是几种妙用,展示了如何利用Automator提高效率和简化工作流程:
1. 文件管理
- 批量重命名文件:可以创建一个工作流,用于根据特定规则批量重命名文件或文件夹。
- 移动和组织文件:设置动作以自动将文件移动到不同的文件夹中,基于文件类型、日期或其他属性。(这个感觉可以有)
- 压缩/解压多个文件:创建一个服务或快速操作,一键压缩或解压多个文件。
2. 图像处理(这个感觉可以有)
- 调整图片大小:构建一个工作流来批量调整图像的分辨率或尺寸。
- 转换图像格式:使用预设的动作或通过脚本实现不同格式间的转换。
- 应用滤镜或效果:结合AppleScript或第三方应用程序对图片施加特效。
3. 文本编辑与处理
- 文本替换:编写一个Shell脚本或使用内建动作来进行批量化文本查找和替换。
- 生成报告:从日志文件或者其他数据源提取信息,并格式化为易于阅读的文档。
- 清理剪贴板历史:定期清除系统剪贴板内容,保护隐私。
4. 网页抓取(这个感觉可以有)
- 下载网页资源:例如下载网站上的所有图片链接。
- 提取HTML元素:解析网页结构并提取特定部分的数据,如标题、链接等。
5. 自动发送邮件
- 定时发送邮件:设定触发器,在特定时间点发送预写好的电子邮件。
- 个性化邮件营销:读取CSV文件中的联系人列表,并向每位收件人发送个性化的邮件。
6. 多媒体处理
- 音频文件编码:改变音频文件的编解码方式或调整音量。
- 视频转码:批量转换视频文件的格式或压缩率。
7. 应用程序启动与控制
- 快捷启动常用软件:创建一个工作流来一键启动一系列经常使用的应用程序。
- 自动化iTunes播放列表更新:添加新歌曲到播放列表或者同步音乐库。
8. 开发者工具
- Git命令行集成:通过Automator封装常用的Git命令,简化版本控制系统操作。
- 代码片段管理:创建一个简单的界面来管理和插入常用的代码段。
9. 系统维护
- 清理临时文件:定期清理不再需要的缓存和其他临时文件。
- 磁盘空间监控:检查硬盘使用情况,并通知用户当存储容量接近满时采取行动。
10. 定制工作流和服务
- 定制化服务:根据个人需求创建独特的服务,如一键备份重要文件夹至云存储。
- 快速操作:利用Quick Actions(快速操作),可以在Finder右键菜单中直接访问你创建的工作流。
通过探索和实践,你可以发现更多关于如何利用Automator来满足特定需求的方法。记住,Automator的强大之处在于它可以与其他macOS技术如AppleScript、Shell脚本以及各种API相结合,从而扩展其功能。此外,随着macOS系统的更新,Automator的能力也在不断进化,所以保持关注最新的变化和技术文档是非常有益的。
Automator 手册第八章:用文件夹操作把手机打造成 Mac 的遥控器
这篇文章的思路学习到了(尤其是借助iCloud文件夹的变化达到“遥控”效果这一点上很精妙),但是设定变量的值,获取下载URL那里没有测试成功,可能还是因为我不够熟练,后面有机会可以再试试。
下载对应的workflow文件试了试也不行,可能是macOS系统(Sequoia 15.2)不一样,Automator(版本2.10 (526))的功能发生了变化导致以往可能有效的方案现在无法生效。
macOS 端版本一:使用现成模块
- 过滤访达项目:过滤出文件夹中的 txt 文件。其实 Shortcuts 已经清理过一遍文件夹,再用 Automator 过滤是上一道双保险。
- 设定变量的值:将过滤出来的文件设为“文件”变量,便于随后灵活取用。
- 打开访达项目:用脚文本编辑器3打开“文件”。
- 暂停:停顿 2 秒,等文本编辑器完全打开。在配置好的电脑上也许可以不用花这几秒时间。
- 获得文本编辑文稿的内容:获取文本文件“文件”中的下载链接。
- 设定变量的值:将下载链接设为变量“链接”,留待稍后取用。
- 退出应用程序:退出脚本编辑器。
- 获得变量的值:获取“文件”。
- 将访达项目移到废纸篓:将“文件”删除。
- 获得变量的值:获取“链接”。
- 下载 URL:下载刚刚获取的链接。
macOS 端版本二:使用脚本
这次我们使用 AppleScript 脚本来下载,以便调用 Aria2 这一下载利器。
我们沿用上一小节的动作,只把最后一步改成 “运行 AppleScript”,替换原来的 HTTP 下载方式。
在macOS系统上将“预览”不可复制的PDF文件转换成内容可复制的PDF文件。
操作步骤:
- 使用【自动操作】中的【将PDF页面渲染为图像】(Render PDF Pages as Images.action)功能,将传递来的PDF文稿的每一页渲染为图像(生成的图片文件的位置比较深,找起来其实不是太方便)。
- 再用【自动操作】中的【用图像新建PDF】(New PDF from Images.action)功能,将刚才生成的多张图像,创建一份多页PDF文稿。
- 再通过【预览】应用打开第2步生成的PDF文件,即可在预览应用里面对PDF的文字内容进行选中和复制了。
文稿类型:
文件夹操作——当文件被添加到某个特定的文件夹之后可以促使该工作流程运行,并将被添加到该文件夹的文件作为该工作流程的输入。简单来说,可以当作一个“触发器”来用(当往特定文件夹中添加文件后就执行特定的动作,比如打开计算器)。
Todo:当前还没有学会如何读取文件的内容,并将内容传递给一个变量,方便后面使用传入的文件的内容(进行一些特定的操作,比如文件内容是一个URL链接的话就打开这个链接,进行下载等其它所需的操作)。
工作流程——工作流程可以在“自动操作”内部运行。
==
文稿拆分:
- 拆分PDF:从输入PDF文稿的每一页新建单页PDF文稿。
- 将PDF页面渲染为图像:此操作会将传递来的PDF文稿的每一页渲染为图像。
文稿合并:
- 用图像新建PDF:用几个输入图像创建一份多页PDF文稿。
- 合并PDF页面:此操作会将传递来的PDF文稿的页面合并为一个PDF文稿。
- 给PDF文稿添加水印:此操作会将图像绘制到PDF文稿的每一页。
……待补充……
截图后OCR并将文字内容拷贝至剪贴板的命令
PATH=$PATH:/usr/local/bin/
screencapture -i ~/ocr.png
tesseract ~/ocr.png stdout --oem 1 --psm 6 -l chi_sim+eng -c preserve_interword_spaces=1 | pbcopy
rm ~/ocr.png
参考链接:
Automator 手册第八章:用文件夹操作把手机打造成 Mac 的遥控器
https://utgd.net/article/20227
Automator Gallery
https://github.com/BlackwinMin/Automator-gallery/
文件夹操作
https://github.com/BlackwinMin/automator-gallery/tree/master/%23Folder%20Action
OCR Screencapture.workflow
https://github.com/BlackwinMin/automator-gallery/tree/master/OCR%20Screencapture
=END=
《 “macOS设备上的自动操作(Automator)” 》 有 2 条评论
日常工具包:关于通用生产环境的讨论
https://utgd.net/article/21077/
`
人们总是忘了自己所处的日常环境,忽视了许多唾手可得的工具与方法。
任何一种立场,任何一个标签,如果推行到极致,结果就是什么事情都做不了。若不停购买工具,最后就容易陷入娱乐主义,娱乐至上,把玩弄工具当成了目的;而什么都不买实际上根本不可能,因为一个人只要在网上发表了这个言论,就意味着他买了一台电脑或手机——起码也是租的——那他就没有资格反对消费(尽管可以反对消费主义)。
大多数工作其实不用花钱,真的可以放心交给日常工具——通常是原生软件和常见的开源软件——而相当一部分稍微棘手一些的材料,一般也只需要购买少数工具或服务。
# 处理文本的工具(建议选择熟悉的、趁手的工具,不一定是系统原生的)
无论是 Windows 上的写字版还是 macOS 上的文本编辑器,通常足以处理大部分的纯文本和富文本。
在文本编辑器中,按住 ⌥Option 键,进入列编辑模式,在各行开头竖着拉一下,就能同时在各行开头输入符号。(实测了一下,不太好用,还是使用 SublimeText 吧)
这个不太建议用系统原生的工具,除非是在完全没有办法的情况下,使用(熟悉、趁手的)现代文本/代码编辑器的工作效率远比使用系统自带的文本编辑工具要高,体验要好。
# 现代的浏览器
几乎所有浏览器也可以查看各类本地文件,并且常常带来惊喜。
【*】浏览器在处理图片时也有奇效。我曾摸索到一套打印长截图的方法,原理很简单,无非用浏览器打开图片,再尝试打印它,其间只需微调参数,原本细细长长的截图就会被自动分割在几个页面里,打印后不至于细小到连内容都看不清。
HTML 文件更是潜力无限。在很早的文章里,我就将想要翻译的文章或书籍弄成 HTML 格式,然后丢给 Safari 翻译,借用浏览器自带的翻译功能,免费、无限量翻译外文资料。后来我又继续薅羊毛,用 Safari 批量翻译 RSS 文章的标题,配合适当的自动化工具,几秒钟就能翻译成百上千篇文章。
# 一款主流的免费自动化工具
Shortcuts-快捷指令
Automator-自动操作
# 运行脚本的工具
自动化的两种主要方式。在设计自动化动作时,还会权衡一下哪种方案最省力,一般来说,我会面临两类自动化方案:
第一,GUI Scripting,即基于 GUI(图形界面)的自动化,主要是模拟键鼠操作,需要懂点脑筋、观察一下实际操作,把人的动作翻译成有规律的键鼠操作,交给电脑执行。多数场合下,GUI Scripting 往往简单有效,而且不需要深层的编程知识。这类自动化中最常用的工具就是 Keyboard Maestro。不过,GUI Scripting 恐有临时建筑之嫌,盖其并不需要了解软件背后做了什么,纯粹模仿使用者的动作,你甚至有机会看到光标自己在屏幕上跳动,绝对和“优雅”二字沾不上边。随着软件界面本身的改动,原先的 GUI Scripting 自动化动作也很可能失效,毕竟它们本身就仪仗图形界面。
第二类是更底层的脚本,直接和软件交流。比如写一个 AppleScript 脚本用于开关暗色模式,就不需要模拟键鼠操作,速度更快、更无痕。显然,这类自动化门槛也更高,前述 AppleScript 就有专门字典(Dictionary),以便使用者可以掌握自动化工具的“方言”。在发现自动化可能性的时候,我会预估一下以后遇到类似问题的概率如何,若是很可能还要打照面,我会写一个相对底层的脚本,尽量确保长期有效;但很多时候,如果只是想临时凑合用,或者任务太急、没工夫打磨自动化动作,这时候就倾向于使用 GUI Scripting。相较于动辄几百上千个可用元素的脚本,制作 GUI Scripting 动作只需要知道两类操作:鼠标点击,以及键盘按键,因为我们和电脑交互时,基本也只涉及这两类输入方式。
# 模拟键鼠的工具
GUI Scripting 一般不需要太复杂的代码知识,而在 Keyboard Maestro 之类的软件中,你压根就不用写代码。一个经典用例即模拟输入信用卡信息,老外经常在网上报税,而网页千变万化,写代码反而把简单问题复杂化,不如直接模拟键鼠操作;类似的,在国内登录校园网或公司内网,也可以取道 GUI Scripting。3
在暂时找不到其他方法,或者情况紧急、无暇细细设计自动化动作时,键鼠模拟常常最直接、最有效。我在工作中常和 PDF 文件打交道,但 macOS 上的进阶编辑工具——不考虑天价的 Adobe Acrobat Pro——屈指可数,而且不少已经停止更新或沦为跨平台的套壳玩具。不过,我借助 GUI Scripting,还是完成了编页码和加目录的辛苦活,虽说和成熟的商业软件不可同日而语,但是原本半个小时的工作如今被被压缩到去一趟洗手间的时间,也非常划算。
# 图片、PDF和其他:作为瑞士军刀的预览工具
上一节提到了用 Keyboard Maestro 制作 PDF 加工工具,这也要归功于系统自带的预览工具:它本身就是一个多功能 PDF 阅读器和轻量级编辑器。
同时,预览工具还有常见的图片标注功能,可以简单拼接、叠放图片,这貌似简单的特性,实则打开了全新的窗口——自定义图片标注。我曾编写过一个轻量级标注工具,原理很简单,无非实现准备一些个性化的标注素材,再叠放在图片上,随后调整一下位置、拉伸一下尺寸、旋转一下角度,就实现了那些时髦标注工具中的大部分功能。类似的事情在 Shortcuts 中也可以完成。
# 小结
从文本编辑器、浏览器、轻代码编辑器、Shortcuts、Automator、Keyboard Maestro 到预览工具,本文尝试勾勒了一个 macOS 下的日常工具包,描摹了一种相对容易打造的通用生产环境,而这些简单的工具——只有 Keyboard Maestro 需要付费——足以完成相当一部分任务。
`
一键对比两个 Word 文档(附自动化) #暂未实际测试,因为我基本没有此类工作和生活场景
https://utgd.net/article/20694
`
人脑不善于机械的对比,也只有在找茬游戏中,这种大量消耗脑力而仍然漏洞百出的工作才会有一点点的吸引力。
不少文档编辑器也意识到这一点,并提供了文档比较功能——著名的 Microsoft Word 当然不会落下。可不幸,或许是 Word 的产品经理日理万机,实在顾不着那么细碎的小功能,竟把它塞在菜单栏的冷宫深处,还调用了 macOS 恶名传千里的文件选择窗口,为了简单对比两份文件,恐怕找一台 27 寸外接显示器都塞不下一连串的窗口和弹窗。
相比之下,BBEdit 等硬核的文本编辑器就往系统右键上下文菜单中塞了对比功能,选好文件后只需点一次,非常轻松。可惜我从事法律工作,常常需要对比新发布的法律规定或者修改前后的合同,而客户发来的几乎都是 Word 文档1,BBEdit 并不对口,遂苦对比功能久矣。
所幸有过之前折腾段落样式和文字格式的经验,我再次挖掘了早期 Word 留下的 AppleScript 遗产,并制作了自动化动作,以在 Finder 中选定文件、一键对比,跳过上述所有恼人步骤。
`