BBEdit AppleScript для переформатирования нескольких файлов

Я хочу написать Applescript, который будет использовать BBEdit — перебирать кучу 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?


person Bomski    schedule 25.07.2011    source источник
comment
Откуда вы берете список файлов?   -  person Antal Spector-Zabusky    schedule 26.07.2011


Ответы (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).

person Antal Spector-Zabusky    schedule 26.07.2011

BBEdit выполнит поиск/замену любой группы файлов, которую вы хотите. Просто нажмите command+shift+f, чтобы открыть поиск по нескольким файлам вместо обычного окна поиска/замены.

Если у вас есть более одного набора команд поиска/замены, которые вам нужно выполнить одновременно, вам нужна Text Factory. Подробнее о том, как его настроить, см. здесь: http://www.barebones.com/products/bbedit/benefitsexercise.html

Это помогает?

person Dave Wolfe    schedule 06.01.2012

Для этого следует использовать функцию Text Factory. В разделе «Файл > Создать > Текстовая фабрика». Любая операция, которую вы можете выполнить с одним файлом, может быть выполнена с любым количеством файлов, и вы можете сохранить операцию для использования в будущем.

person juliefromvermont    schedule 26.03.2015