Automator 是否可以根据变量的值或步骤的结果进行分支?

Automator 是否可以根据变量的值或步骤的结果进行分支?

我正在编辑一个 Automator 工作流程,该工作流程目前接收多个存储的电子表格并通过电子邮件将它们发送给不同的人。这些电子表格存储在 Windows 服务器上,由与此讨论无关的单独流程创建。但一旦创建,我希望用户能够单击此操作并弹出要发送的邮件消息(通常为 8 条)。

只要 Mac 连接到服务器,所有操作都可以正常进行。如果服务器连接不存在,操作就会失败,因为文件不存在。

我已经查看了可以在实用程序、其他和 Finder(以及其余所有程序)中添加的所有可能的步骤,但我找不到任何方法可以执行类似操作,例如“如果变量已连接服务器不为空”。

我可以使用 Automator 操作自动连接到服务器,但如果已经连接,我会得到另一个连接,这会给我以后带来麻烦......卸载会卸载第一个并且服务器停止显示,但是 /Volumes 中的路径仍然存在...这是一条我不想走的路。

那么,有没有办法使用变量来检查条件是真还是假,并根据该条件跳过步骤?或者有其他方法来完成任务?我不太使用 Automator,我更喜欢用老式的方式编写脚本,因此,即使打开 .workflow 文件并手动编辑参数也是一种选择,假设您可以这样做。我正在编辑这个特定的工作流程,因为它是由其他人开发的,除了服务器连接故障外,它总体上确实做得很好。

答案1

您可以将其拆分为 3 个自动化应用程序,并使用 shell 脚本进行分支。运行常规工作流程直至连接检查,然后使用自动化操作Do Shell Script

该脚本可能类似于:

#! /bin/bash

if
        <your command to test connection>
then
        open /pathto/automator_connected.app
else
        open /pathto/automator_not_connected.app
fi

automator_connected.app 将包含你的 automator 工作流程的其余部分

automator_not_connected.app 将包含服务器连接失败时要采取的操作

相关内容