BBEdit AppleScript用于重新格式化多个文件

时间:2011-07-25 21:31:01

标签: applescript bbedit

我正在寻找一个将使用BBEdit的Applescript - 循环浏览大量的HTML文件并自动编写它们(因此缩进更易于阅读)。

到目前为止,我有:

tell application "BBEdit"
    activate
    open {file "Macintosh HD:TEST DIRECTORY:testfile copy 2.html"} with LF translation
    (format mode hierarchical)
    beep 
    display alert "Finished!"
end tell

这会将转换应用于单个文件,但有人有任何建议如何将此应用于未知数量的HTML文件吗?

3 个答案:

答案 0 :(得分:3)

你几乎得到了它;诀窍是你要遍历open返回的文件。因此,你需要这样的东西:

tell application "BBEdit"
    set docs to open LIST_OF_FILES with LF translation
    repeat with doc in docs
        -- format doc
        save doc
    end repeat
    beep -- Or even `say "Finished!" without waiting until completion`
         -- if you want your computer to talk to you
    display alert "Finished!"
end tell

正如您所看到的,您需要做的就是将格式化代码放在此循环中(并且不要忘记保存文件!);循环将依次将doc设置为列表docs的每个元素,并使用该元素运行正文。如果您不确定如何选择文件,则一种方法是choose file with multiple selections allowed;这将弹出一个对话框,允许您选择任意数量的文件。要使用它,只需将LIST_OF_FILES替换为(choose file with multiple selections allowed)

答案 1 :(得分:0)

BBEdit将对您想要的任何文件组执行查找/替换。只需按下命令+ shift + f即可调出多文件搜索,而不是基本的查找/替换窗口。

如果您需要同时执行多组find / replace命令,则需要Text Factory。有关如何设置一个的详细信息,请参阅此处:http://www.barebones.com/products/bbedit/benefitsexercise.html

这有帮助吗?

答案 2 :(得分:0)

您应该使用文本工厂功能。在“文件>新>文本工厂”下。您可以对单个文件执行的任何操作都可以在任意数量的文件上完成,您可以保存操作以备将来使用。