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

问题描述 投票:6回答:5

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

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

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

谢谢!

macos automator
5个回答
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

3
投票

诀窍是使用AppleScript变量!

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

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

enter image description here

  1. 在“变量库”的“实用程序”下,将AppleScript变量拖到“从列表中选择”操作上方的“工作流”中。
  2. 编辑变量选项并将其脚本定义为文本字符串数组,其中包含所需的选项列表。

1
投票

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

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

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

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

0
投票

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

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

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


0
投票

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

一种是拆分文本,它允许您选择某个分隔符来拆分文本。

另一个是Get Words of Text,它允许您只获得作为输入传递的文本的单个单词。

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

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

© www.soinside.com 2019 - 2024. All rights reserved.