Applescript для создания подпапок и перемещения файлов с частью имени

Я долго искал подобный скрипт, но не нашел. Я подозреваю, что это похоже на этот

но не совсем, и я не уверен, как изменить его, чтобы он работал на меня.

У меня есть группа файлов с несколькими именами, подобными этому....

Имя файла Vyear #01 (год).ext

Имя файла Vyear #01 (год).ext

и так далее, условность всегда одна и та же.

Имя файла (иногда несколько слов), за которым следует V для версии, затем год в скобках, затем число, затем еще один год в скобках. Это сложно, но всему есть причина. Я ищу способ автоматизировать перемещение всех этих файлов в подпапки на основе только первой части этого имени. Чтобы такой файл...

Туман V2000 # 01 (2011).zip

Будет перемещен в папку с именем this.

Туман V2000

Мне постоянно приходится создавать такие файлы, и я бы хотел, чтобы они были отсортированы по подпапкам. Моя проблема в том, что я не уверен, как выбрать только первое имя (учетная запись для файлов с двумя или тремя словами в названии) и номер тома только для создания подпапки, а затем сопоставить имена файлов для перемещения .

Надеюсь, я правильно это объясняю. Если бы кто-нибудь мог помочь, я был бы признателен.

Ваше здоровье.


person Jose Munoz    schedule 25.01.2013    source источник


Ответы (1)


Попробуй это. По сути, мы можем вычислить имя папки, если знаем, где в имени файла находится символ «#». Тогда мы можем получить весь текст до этого места - 2 символа. Тогда вам просто нужно создать эту папку и переместить в нее файл. Простой. Удачи.

set sourceFolder to choose folder

tell application "Finder"
    set theFiles to files of sourceFolder

    repeat with aFile in theFiles
        set fileName to name of aFile

        if fileName contains "#" then
            set poundOffset to offset of "#" in fileName
            set folderName to text 1 thru (poundOffset - 2) of fileName

            set newFolder to (sourceFolder as text) & folderName & ":"
            if not (exists folder newFolder) then
                make new folder at sourceFolder with properties {name:folderName}
            end if

            move aFile to folder newFolder
        end if
    end repeat
end tell
person regulus6633    schedule 26.01.2013