Applescript 自动机:我想询问选项列表,然后根据我所做的选择运行特定的工作流

Applescript 自动机:我想询问选项列表,然后根据我所做的选择运行特定的工作流,applescript,automator,Applescript,Automator,我已经拼凑了一个输出图像序列的后效渲染场。我有一系列的Automator工作流(目前作为应用程序运行),使用FFMPEG将这些帧转换为视频 它工作得很好,但我需要超过六个不同的工作流–每个主要帧速率(24fps、25fps、30fps等)一个工作流,如果原始源文件夹包含音频文件,则需要使用音频创建视频的每个工作流的副本 我可以拥有这么多工作流,但我想将我导出的应用整合到一个主自动程序应用中,该应用只需询问我想要的帧速率(从列表中),然后选择并运行与该选择相关联的特定工作流(或应用) 目前,我已经

我已经拼凑了一个输出图像序列的后效渲染场。我有一系列的Automator工作流(目前作为应用程序运行),使用FFMPEG将这些帧转换为视频

它工作得很好,但我需要超过六个不同的工作流–每个主要帧速率(24fps、25fps、30fps等)一个工作流,如果原始源文件夹包含音频文件,则需要使用音频创建视频的每个工作流的副本

我可以拥有这么多工作流,但我想将我导出的应用整合到一个主自动程序应用中,该应用只需询问我想要的帧速率(从列表中),然后选择并运行与该选择相关联的特定工作流(或应用)

目前,我已经调整了一个“运行AppleSript”操作,这是我在堆栈溢出上发现的。我从一个小的开始,用一些帧速率测试它

on run {input, parameters}

    choose from list {"ProRes 24", "ProRes 24 with Audio", "ProRes 30", "ProRes 30 with Audio"} with prompt "Please make your selection" without multiple selections allowed and empty selection allowed
    return the result as string

    return input
end run
从问我正确的问题的角度来说,它是“有效的”,但我不确定我从何而来。我认为我需要将答案传递到一个变量中,并使用该变量在运行工作流操作(或启动应用程序,看看我的工作流如何也是应用程序?)中进行选择,但我不知道如何进行选择


任何帮助都将不胜感激。

此AppleScript代码可能适合您

set theChoice to (choose from list ¬
    {"ProRes 24", "ProRes 24 with Audio", "ProRes 30", "ProRes 30 with Audio"} ¬
        with prompt "Please make your selection" without multiple selections allowed and empty selection allowed) as text

if theChoice is "ProRes 24" then
    tell application "workflow 1" to activate
else if theChoice is "ProRes 24 with Audio" then
    tell application "workflow 2" to activate
else if theChoice is "ProRes 30" then
    tell application "workflow 3" to activate
else if theChoice is "ProRes 30 with Audio" then
    tell application "workflow 4" to activate
end if
然后只需插入正确的自动机应用程序名称,替换这些…”“工作流1”等

如果每个列表项都是应用程序的实际名称,则在执行
从列表中选择
命令后,您所需的是:

这将打开所选应用程序

它也不需要是一个自动程序应用程序,它可以是一个AppleScript应用程序,它只有以下两个命令:


如果每个列表项都是应用程序的实际名称,则在执行
从列表中选择
命令后所需的全部内容是
如果结果不等于false,则激活应用程序(结果为字符串)
它将打开所选的应用程序。它也不需要是一个具有这两个命令的自动程序,它可以是一个AppleScript应用程序。@user3439894完美。是的,这些是我的应用程序的名称,所以我按照你的建议制作了一个Apple脚本。这是一个简单而优雅的解决方案。谢谢!因为你选择在我的第一条评论中使用这些信息,我已将其添加为答案。如果您愿意,我将非常感谢您将其标记为已接受的答案。@user3439894谢谢!我希望您这样做,以便我能给您正确的分数。谢谢!在您发布此内容之前,我使用了上一个解决方案,但这非常有助于您了解。向上投票。
if not result is equal to false then activate application (result as string)
choose from list {"ProRes 24", "ProRes 24 with Audio", "ProRes 30", "ProRes 30 with Audio"} with prompt "Please make your selection" without multiple selections allowed and empty selection allowed
if not result is equal to false then activate application (result as string)