使用 Automator 将任何.txt文件传递给现有的 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文件拖放到环绕我当前脚本的"自动操作"应用程序上。

尝试使用"合并文本文件",我觉得我非常接近,但我无法按照我想要的方式完全传入.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

。但不幸的是,它不是那样工作的。

如果可以的话,我真的宁愿不重新发明一个全新的脚本。任何建议都会很棒。谢谢。

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

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

最新更新