1

所以我有一个明显使用变量的 ruby​​ 脚本。部分脚本会打开一个应用程序并运行一个自动化工作流程。我的 ruby​​ 脚本中有一些变量需要我的工作流程使用。这有可能吗?

4

2 回答 2

0

您是否能够:a) 从 Ruby 执行命令行程序 b) 将 Automator 工作流程保存为应用程序

如果是这样,您应该能够运行该open命令,例如open test.app --args someArg. 或者您可以使用automator命令,例如echo "someArg" | automator -i - test.app

请注意,整个 Automator 脚本将为每个参数运行一次 - 尝试将“Speak Text”作为您的第一个项目来验证这一点。

要一次性处理所有参数,您实际上只需要传递一个然后将其拆分,例如open test.app --args "one|two|three|four"然后类似

运行输入
    将 myArray 设置为我的 theSplit(输入为字符串,“|”)
    将 a 设置为 myArray 的第 1 项
    将 b 设置为 myArray 的第 2 项
    将 c 设置为 myArray 的第 3 项
    将 d 设置为 myArray 的第 4 项
    显示对话框“c is” & c

        - 做东西
    返回字符串
结束运行

on theSplit(theString, theDelimiter)
    -- 保存分隔符以恢复旧设置
    将 oldDelimiters 设置为 AppleScript 的文本项分隔符
    -- 将分隔符设置为要使用的分隔符
    将 AppleScript 的文本项分隔符设置为 theDelimiter
    -- 创建数组
    --将 theArray 设置为 theString 的每个文本项
    将 theArray 设置为 theString 的文本项
    --将对话框显示为字符串
    -- 恢复旧设置
    将 AppleScript 的文本项分隔符设置为 oldDelimiters
    -- 返回结果
    返回数组
结束分裂

但是,AppleScript 似乎只有在不是第一个操作时才有效。如果您需要它作为第一个操作,您可能会这样做,请首先插入一个运行 Shell 脚本,它只传递参数:

对于 f
做
  回声“$ f”
完毕
于 2011-11-13T18:43:51.427 回答
-1

是的,可以将参数传递给 ruby​​ 脚本。这是一个很好的教程:

http://ruby.about.com/od/rubyfeatures/a/argv.htm

于 2011-08-16T09:57:31.050 回答