10

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

我看到从列表中选择操作。它没有选项。在某个地方,我想到了将“从列表中选择”的输入设为“获取指定文本”。然后我尝试将我的值列表放入获取指定文本中。但是,当我运行它时,我只得到一条线。我试过每行一个项目,逗号分隔,空格分隔,甚至用花括号括起来,用逗号分隔。没有任何效果。

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

谢谢!

自动机截图 结果

4

5 回答 5

12

这是在列表中仅选择一行的解决方案。

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

添加“运行 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
于 2012-07-12T00:37:25.040 回答
6

诀窍是使用 AppleScript 变量!

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

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

在此处输入图像描述

  1. 变量库中的Utilities下,将 AppleScript变量拖到工作流程中的从列表中选择操作上方。

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

于 2017-12-23T22:26:48.243 回答
2
  1. 删除“获取指定文本”操作。

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

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

    on run {}   
       set theList to {"TXT", "RTF", "RTFD", "HTML"}
       return theList 
    end
    
于 2013-11-30T12:39:28.913 回答
0

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

您没有提及您正在运行的操作系统,但 Lion 在文本操作中添加了使用富文本的能力 - 不幸的是,如果大多数操作实际上获得富文本,则它们不会按预期工作。在 Lion 中,您可以通过使用诸如Run Shell Script操作之类的东西来利用一些(隐藏的)输入项强制(您不需要在其中放置任何额外的东西,只需使用默认值,它会传递项目)到从获取指定文本操作转换富文本。

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

于 2012-07-11T21:06:33.593 回答
0

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

一种是拆分文本,它允许您选择特定的分隔符来拆分文本。

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

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

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

于 2013-03-07T00:40:36.547 回答