如何将变量从AppleScript传递到Automator?

问题描述

我正在寻求有关将变量从AppleScript传递到Automator的帮助。

我正在开发一个小型自动化应用程序。我需要输入一个数字,该数字将添加到PDF名称的末尾。我在自动器中使用了“询问文本”,但是,我发现,首先,弹出窗口不在屏幕中央。 (27英寸iMac)。第二,每次输入数字后,都需要使用鼠标单击“确定”,Enter键不起作用。

因此,我向AppleScript寻求帮助。这是我找到的,一个让我输入数字的窗口,然后单击“继续”,然后将数字传递给Automator以添加到PDF的名称

  1. 将变量的值设置为存储
  2. 运行AppleScript:忽略此操作的输入。
on run {input,parameters}

  display dialog "Please enter QC Round." default answer "" with icon stop buttons {"Cancel","Continue"} default button "Continue"
--> Result: {button returned:"Continue",text returned:"MySecretPassphrase"}

  return input
end run
  1. 将变量的值设置为继续
  2. 获取变量值以存储
  3. 重命名Finder项:添加文本 在名称添加:_QC_Continue(变量)

但是它不起作用。谁能帮我修复它?

解决方法

在Automator中,一个动作从上一个动作获取输入,并将其结果传递到下一个动作。在 Run AppleScript 操作中,输入位于 run 处理程序的input参数中,并且处理程序返回的项将继续传递。>

在您的示例中,您只是传递了input,该值没有值,因为该操作忽略了其输入。解决方案是从对话框返回文本,例如:

on run {input,parameters}
   set dialogResult to (display dialog "Please enter QC Round." default answer "" with icon stop buttons {"Cancel","Continue"} default button "Continue")
   return text returned of dialogResult
end run