如何将变量从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

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...