在 macOS Tahoe 中设置文件夹自动化。
macOS Tahoe中最令人兴奋的新增功能之一是快捷指令自动化,它(以及许多其他功能)允许快捷指令在文件系统中移动或更改内容时进行操作。在文件夹操作将这些功能引入 Mac OS X Jaguar 二十多年后,苹果对这项由Hazel等第三方实用程序推广的功能进行了现代化的诠释。
遗憾的是,Apple 对此功能的实现非常基础——它只是一个触发器,用于触发快捷方式,并将文件系统更改的所有信息传递给快捷方式。解析、过滤和处理这些信息的工作完全由快捷方式本身负责。这意味着,要充分利用此功能,用户需要掌握一些快捷方式的基础知识。
本文旨在提供一个快速指南,教你如何创建一个快捷方式,在文件夹添加项目时,该快捷方式会作用于文件夹的内容。在本例中,我们将创建一个拖放文件夹,用于在添加 Markdown 文件时将其移动到其他位置。
首先,打开“快捷方式”,然后点击侧边栏中的“自动化”项。然后点击右上角的加号按钮。在本例中,我们将选择一个文件夹自动化。在随后出现的对话框中,选择要执行操作的文件夹(我的文件夹名为“拖放至此处”),然后勾选指定快捷方式仅在项目添加到该文件夹时运行的复选框。我还将点击“立即运行”选项,并取消勾选“运行时通知”,因为我喜欢我的自动化像潜艇一样静默运行。
完成所有操作后,您可以选择一个现有的快捷方式,但我建议您创建一个与此操作明确关联的新快捷方式。(这样可以使流程更简洁。如果您想在操作中调用某个例程,可以随时使用“运行快捷方式”模块!)这样,将打开一个新窗口,其中包含一个空白的快捷方式,但第一步除外,即“接收文件夹更改摘要作为输入”。在这一步,系统会将“文件夹更改摘要”项传递给您的快捷方式。剩下的就交给您了!
处理此输入最简单的方法是添加一个“重复每个”块,这样快捷方式就可以逐个循环遍历所有添加的文件并单独处理它们。与其对原始快捷方式输入进行操作,不如点击自动填充到“重复每个”块中的“快捷方式输入”字段,然后从“文件夹更改摘要”变量提供的参数中选择“添加的文件”。
如果你的目标是把文件夹里的所有文件都取出来,然后以某种方式处理,那就大功告成了。你可以删除、复制、压缩或移动它们,所有这些都在循环中完成。
在此示例中,我想更进一步,应用一组规则,以便仅对某些文件执行操作。由于这是快捷方式,因此有很多方法可以过滤已添加文件列表,以仅包含我们想要的文件。对于非常简单的规则集,最简单的方法可能是使用“过滤文件”操作对快捷方式输入执行操作,然后将“重复执行每个操作”设置为对已过滤的文件执行操作。
使用过滤文件操作的简单自动化。
另一种方法是在 repeat 块中使用 If 语句,并使用该语句测试您在“过滤文件”操作中使用的相同属性——在本例中,我过滤的是 Markdown 格式的文件扩展名md 。一开始就过滤文件可能效率更高,但它无法处理一些复杂的情况,我稍后会讨论。
使用 If 操作的简单自动化。
您也可以混合搭配这些方法,先进行基本过滤,然后再进行更具体的测试。最终的目标是让您的快捷方式只处理您定义的正确类型的文件。
复杂因素:子文件夹
现在,事情变得棘手了。苹果的自动化功能不提供任何处理文件夹内子文件夹的选项——任何更改,任何子文件夹层次结构中的深度,都会触发自动化。我和 Dan Moren 花了一些时间研究这个问题,虽然正确的解决方案是苹果提供一个复选框,让用户可以决定这些自动化功能是否应该包含子文件夹,但还有其他一些方法可以解决这个问题。(另一种选择是苹果将自动化功能所针对的文件夹路径作为变量提供,以便我们进行测试。)
Dan 的方法是使用正则表达式从传入路径中去除文件名,然后严格根据顶级文件夹的确切路径进行过滤:
我的方法步骤更多,但更像 Shortcuts。我用斜杠分隔传入文件的路径,创建一个包含文件路径中所有项目的列表。最后一项是文件名,倒数第二项是其所在的文件夹。(拜托,苹果,为什么文件夹不能作为变量提供给我?!)可惜的是,你不能像在 Python 中那样让 Shortcuts 从列表中获取第 -2 项,所以我改为计算列表中的项目数,然后减一,再获取该项目:
完成所有操作后,我可以使用 If 语句将该封闭文件夹与我正在过滤的顶级文件夹的名称进行比较,并且仅当文件位于顶级文件夹中时才继续。
底线
macOS Tahoe 中的快捷指令自动化功能确实带来了许多可能性。我已经创建了六个这样的自动化功能。没错,苹果确实应该简化操作,但一旦你掌握了处理文件夹变更摘要的技巧,就能做出很多很棒的事情。以下是一些我已经创建的操作:
- 当项目添加到我的 Dropbox 时,在 Finder 中显示文件
- 当我们的编辑 Jim Metzendorf 将升级 MP3 文件添加到 Dropbox 时,将文件复制到我的桌面
- 将某些图像文件拖放到我的桌面或添加到我的“下载”文件夹时转换为 JPEG
- 删除 Zoom 安装程序,因为当我点击网页链接时,Zoom 会在启动 Zoom 之前不断下载该安装程序
- 通过 Python 脚本将西南航空的 ics 文件转换为正确的格式,然后再将其添加到我的日历中
一旦你习惯了创建过滤器并使用“重复每个项目”区块,这个功能就能帮你省去很多繁琐的流程。这不正是用户自动化的初衷吗?
原文: https://sixcolors.com/post/2025/08/get-started-with-folder-automation-in-macos-tahoe/