Applescript: создание новой структуры папок в нескольких папках - PullRequest
0 голосов
/ 27 февраля 2012

Этот код для апплета создает определенную структуру папок внутри одной выбранной папки или независимо от того, какая открытая папка находится в Finder при щелчке апплета.Он ломается, если выбрано несколько папок.Есть ли способ заставить этот скрипт работать, когда выбрано несколько папок?

property archivesFolder : "Archives"

property imagesFolder : "Images"

property proofreadFolder : "Proofreading"

property proofFolder : "Proofs"

property sourceFolder : "Source"

try
    tell application "Finder" to set theLocation to the selection as alias
on error
    tell application "Finder" to set theLocation to (folder of the front window as alias)
end try

tell application "Finder"

    if not (exists folder archivesFolder of theLocation) then
        make new folder at theLocation with properties {name:archivesFolder}
    end if

    if not (exists folder imagesFolder of theLocation) then
        make new folder at theLocation with properties {name:imagesFolder}
    end if

    if not (exists folder proofreadFolder of theLocation) then
        make new folder at theLocation with properties {name:proofreadFolder}
    end if

    if not (exists folder proofFolder of theLocation) then
        make new folder at theLocation with properties {name:proofFolder}
    end if

    if not (exists folder sourceFolder of theLocation) then
        make new folder at theLocation with properties {name:sourceFolder}
    end if

end tell

1 Ответ

2 голосов
/ 27 февраля 2012

Попробуйте это:

property folderNames : {"Archives", "Images", "Proofreading", "Proofs", "Source"}

tell application "Finder"
set selectedFolders to selection
if (count of selectedFolders) > 0 then
    repeat with aFolder in selectedFolders
        set theLocation to aFolder as string
        repeat with newFolder in folderNames
            try
                make new folder at theLocation with properties {name:"" & newFolder & ""}
            end try
        end repeat
    end repeat
else
    set theLocation to (target of front window) as string
    repeat with newFolder in folderNames
        try
            make new folder at theLocation with properties {name:"" & newFolder & ""}
        end try
    end repeat
end if
end tell
...