Automator:从列表中选择并获取相应的变量值

Automator: Choose from list and getting the corresponding variable value

我是 AppleScript 的新手,但我对 Automator 有一些基本的了解。这是我想要实现的目标:

  1. 有一个简单的 URL 列表,我在整个工作中经常使用它。像这样:

Product datasheet: URL1

Licensing: URL2

Price list: URL3

...

etc.

在大多数情况下,我会在向客户发送邮件消息时使用这些 URL,但有时我也会在其他应用程序(如 Safari)中使用它们。所以服务应该是全球性的。

  1. 我需要服务来提示我一个项目列表,其中每个项目都是 link 的名称(例如 {"Datasheet"、"Price list"、 "Licensing", 等等})。

  2. 当我 select 一个项目并单击“确定”时,该服务必须获取与该 link 名称相对应的 URL,然后将其放入剪贴板,这样我就可以在需要使用它的时候粘贴它。

我遵循了此问答 Automator: How do I use the Choose from List action? 中的建议并创建了第一个动作 (运行 AppleScript)。此外,我创建了一些变量并指定了名称和 URLs。 IE。我将在服务中存储实际列表 ("database")。总共有 30 到 50 个 links/records,所以我可能不需要外部 Excel 文件或其他东西。

我想不通的是如何从变量中 get/fetch URL。变量的获取值对我不起作用,因为它需要一个常量变量名称作为输入。但是,我需要一个动作来接收来自 运行 AppleScript 动作的输入,查找变量列表并获取 URL,然后将结果 URL 传递到剪贴板动作。

感谢您的帮助。

使用单个 运行 AppleScript 操作创建自动化服务工作流,包含以下代码:

set x to item 1 of (choose from list {"Product datasheet", "Licensing", "Price list"})
if x is "Product datasheet" then
    set the clipboard to "URL"
else if x is "Licensing" then
    set the clipboard to "Another URL"
else if x is "Price list" then
    set the clipboard to "Yet Another URL"
end if

要添加到此,请添加到第一行的项目列表,复制 else if 行并编辑它以检查新添加的项目,然后复制 set the clipboard 行和对其进行编辑,使其包含新的 URL.

此外,请确保将工作流设置为在 "any application" 中工作,并且还应将其设置为接收 "no input"。