使用Automator将任何.txt文件传递给现有AppleScript

时间:2016-02-24 22:32:22

标签: macos applescript

我目前有一个AppleScript,它将包含长列表的硬编码纯文本文件读入变量,然后将其作为段落读入另一个变量。该脚本非常适合我的目的。这基本上就是我所使用的:

set fileHandler to (read POSIX file "/path/to/my/file.txt")
set newList to paragraphs of fileHandler

repeat with i in newList
     # do stuff
end repeat

省略的脚本打开Safari位置,使用i作为该页面上的变量调用JavaScript,将结果写入新的纯文本文件,关闭Safari窗口,然后重复。它一直持续到列表末尾,然后在repeat之外运行do shell script,稍微清理新文本文件。

麻烦的是,每次我想使用不同的列表运行脚本时,我都必须打开硬编码文件并粘贴到列表中。我只是将任何.txt文件放到包含当前脚本的Automator应用程序上。

我已尝试使用"合并文本文件"而且我觉得我非常接近,但我不能按照我喜欢的方式传递.txt文件的内容。除非我做错了,否则我无法通过它。并且"获取变量的值" /"设置变量的值"添加额外的"文字"项目到我的列表,我不明白。

理想情况下,我想做这样的事情:

set fileHandler to (read POSIX file arg) -- the dropped text file
set newList to paragraphs of fileHandler

repeat with i in newList
     # do stuff
end repeat

...但不幸的是,它并没有这样做。

如果我能提供帮助,我真的不会重新发明一个全新的剧本。任何建议都会很棒。感谢。

1 个答案:

答案 0 :(得分:1)

实际上不需要Automator。将此代码保存在脚本编辑器中作为应用程序(包)并将文件拖放到其上。

on open theFiles
  repeat with aFile in theFiles
    set newList to paragraphs of (read aFile)

    repeat with i in newList
        # do stuff
    end repeat
  end repeat
end open