Прочитать папку, разобрать имена файлов и вызвать другую программу - PullRequest
0 голосов
/ 01 декабря 2011

Короче говоря, мне нужно сделать что-то вроде этого:

  1. У меня есть папка с большим количеством файлов и я хочу обработать все файлы с расширением .epub.
  2. Всефайлы уже следуют схеме именования: Фамилия, Имя - Title.epub или Фамилия, Имя - Серия x - Title.epub, и мне нужен анализатор для Фамилии, Имени, Серии (если есть) и Заголовка.У меня есть инструмент командной строки, который устанавливает метаданные: ebook-meta filename -a "Имя, Фамилия" -t Заголовок

Есть много фрагментов для 1.), однако мне нужен ввод для 2.) и ценю любую помощь / указатели!

1 Ответ

1 голос
/ 02 декабря 2011

Вы можете начать со следующего и изменить его в соответствии со своими потребностями.Компилируется, хотя и не проверено.

set p to POSIX file "/Users/kaass/Desktop/test/"
tell application "Finder" to set filelist to name of every file of folder p

repeat with filename in filelist
    set text item delimiters to ""
    if text -5 thru -1 of filename is equal to ".epub" then
        set temp to items 1 thru -6 of filename as text

        set text item delimiters to " - "
        set myWord to text items 1 thru -1 of temp
        set title to myWord's last item as text

        if myWord's length is equal to 3 then set series to myWord's second item as text

        set myWord to item 1 of myWord as text
        if myWord contains "," then
            set text item delimiters to ", "
        else
            set text item delimiters to " "
        end if
        set author to (text item 2 of myWord) & space & (text item 1 of myWord)
        set path_and_filename to POSIX path of file p & filename
        do shell script "echo Processing file " & quoted form of path_and_filename & ": " & author & " +++ " & title
        do shell script "/Applications/calibre.app/Contents/MacOS/ebook-meta " & quoted form of path_and_filename & " -a " & quoted form of author & " -t " & quoted form of title
    end if
end repeat

Просто прокомментируйте, если вам нужно что-то изменить.

...