Automator:如何使用“从列表中选择”操作?

时间:2012-07-11 19:32:53

标签: macos automator

我正在尝试使用Automator创建一个只调用textutil convert的服务。最后,我希望能够右键单击一个docx文件并转换为文本,rtf,html等。在我右键单击后,我想要一个非常简单的弹出窗口,询问所需的格式。

我看到“从列表中选择”操作。它没有选择。在某个地方,我想到了从列表中选择的输入是获取指定文本。然后我尝试将我的值列表放在Get Specified Text中。但是,当我运行它时,我只得到一行。我已经尝试了每行一个项目,逗号分隔,空格分隔,甚至用花括号括起来,用逗号分隔。什么都行不通。

如何让选择器对话框显示我的所有选项?另外,有没有办法将选择限制为一个项目?

谢谢!

automator screenshot result

5 个答案:

答案 0 :(得分:11)

以下是在列表中仅选择一个的解决方案。

删除(“获取指定文字”和“从列表中选择”)操作。

添加“运行AppleScript脚本”操作。 1-剪切操作中的文本。 2-在操作中复制/粘贴此文本。

on run
    choose from list {"TXT", "RTF", "RTFD", "HTML"} with prompt "Please make your selection" without multiple selections allowed and empty selection allowed
    return the result as string
end run

答案 1 :(得分:3)

诀窍是使用AppleScript变量!

其他建议的答案有效,但最简单,最直接的方法是使用AppleScript变量来定义列表选项。

文本变量只能存储一个纯文本项,但AppleScript变量可以构造为数组,这正是您定义列表所需的。

enter image description here

  1. 变量库中,在实用程序下,拖动 AppleScript 变量进入“从列表中选择”操作上方的工作流程。

  2. 编辑变量选项并将其脚本定义为文本字符串数组,其中包含所需的选项列表。

答案 2 :(得分:1)

1)删除“获取指定文字”操作。

2)在“从列表中选择”操作上方添加“运行AppleScript ”操作。

3)在“运行AppleScript ”操作中,剪切文本并复制/粘贴此文本。

on run {}   
   set theList to {"TXT", "RTF", "RTFD", "HTML"}
   return theList 
end

答案 3 :(得分:0)

您需要将文本拆分为项目列表,这是从列表中选择期望的输入。您可以使用过滤段落操作来分解文本,例如返回非空的段落

您没有提到正在运行的操作系统,但Lion添加了在文本操作中使用Rich Text的功能 - 遗憾的是,如果实际获得Rich Text,大多数操作都无法正常工作。在Lion中,您可以通过使用类似运行Shell脚本的操作来利用某些(隐藏的)输入项强制(您不需要在其中添加任何额外内容,只需使用默认值,通过项目传递来转换获取指定文本操作中的Rich Text。

从列表中选择操作包含所有按钮,但无法选择指定的一组项目。编写Automator操作相当容易,因此滚动自己的textutil包装器将是另一种选择。

答案 4 :(得分:0)

还有两个Automator动作也可以解决这个问题。

其中一个是 拆分文字 ,可让您选择某个分隔符来拆分文字。

另一个是 获取文字 ,这样您就可以获得作为输入传递的文字的单个单词。

如果您没有这些操作,可以从这里获取:

https://itunes.apple.com/us/app/text-automator-actions-pack/id448838274?mt=12