2013-05-12 2 views
0

У меня более 200 фотографий. Я хочу, чтобы AppleScript:Applescript перемещать каждый файл в свою новую папку

  1. создать новую папку для каждой из этих 200 снимков на основе имени файла
  2. переместить файл в него

так есть. XXX.jpg попадает в папку XXX.

Задача более-менее простая, но все aScript-код s, который я нашел на форумах Mac, устарели. я нахожусь на последней версии пумы

ответ

0

Try:

set myFolder to (choose folder) 
tell application "Finder" to set myFiles to files of myFolder as alias list 

repeat with aFile in myFiles 
    set bName to my baseName(aFile) 
    tell application "Finder" 
     set folderExists to exists folder bName of myFolder 
     if not folderExists then make new folder at myFolder with properties {name:bName} 
     move aFile to folder bName of myFolder 
    end tell 
end repeat 

on baseName(myFile) 
    tell application "System Events" to set {fileName, fileExt} to {name, name extension} of myFile 
    return text 1 thru ((get offset of "." & fileExt in fileName) - 1) of fileName 
end baseName 

EDIT

set myFolder to findFolder() 

tell application "Finder" to set myFiles to files of myFolder as alias list 

repeat with aFile in myFiles 
    set bName to my baseName(aFile) 
    tell application "Finder" 
     set folderExists to exists folder bName of myFolder 
     if not folderExists then make new folder at myFolder with properties {name:bName} 
     move aFile to folder bName of myFolder 
    end tell 
end repeat 

---------------- HANDLERS ---------------- 
on baseName(myFile) 
    tell application "System Events" to set {fileName, fileExt} to {name, name extension} of myFile 
    return text 1 thru ((get offset of "." & fileExt in fileName) - 1) of fileName 
end baseName 


on findFolder() 
    activate application "SystemUIServer" 
    -- Bug pointed out by Lauri Ranta http://www.openradar.me/9406282 
    tell application "Finder" 
     activate 
     set mySelection to (get selection) 
     if mySelection ≠ {} then 
      set mySelection to first item of (get selection) 
      if mySelection's class = folder then 
       set currentFolder to mySelection 
      else if mySelection's class = document file then 
       set currentFolder to parent of mySelection 
      else if mySelection's class = alias file then 
       set currentFolder to original item of mySelection 
      end if 
     else 
      set currentFolder to target of front Finder window 
     end if 
    end tell 
    return (currentFolder as alias) 
end findFolder 
+0

спасибо. возможно, до середины так, что «моя папка» - это то, что обнаруживает искатель? aka i open folder i nfinder, и это папка, куда должна идти работа. будет более общим, а затем – user2341292

+0

См. мой EDITED ответ. – adayzdone

+0

thanx, который делает это! – user2341292

Смежные вопросы