Hallo Daniel,
nachstehend eine erste Version des Droplets. Ich habe es Dir per PM zugestellt. Bitte mache einen ersten Versuch mit einem Quellordner, welcher nur drei Bilder enthält (von jeder Sorte eines).
Wer es interessehalber ausprobieren will, den folgenden Code auswählen, kopieren und in ein neues Fenster des AppleScript-Editors einsetzen.
Dann > Ablage > Sichern: Einen Namen tippen und als Dateiformat "Programm" wählen. Bei den Optionen keine der beiden Checkboxen aktivieren.
Zum Gebrauch: Den Quellordner, welcher alle ".tif"-Dateien enthält, auf das Icon des Droplets ziehen.
Das Script schickt die Dateien der Reihe nach zu einem Handler, in welchen Photoshop die Bilder öffnet und die Anzahl Pixel und Beschneidungspfade feststellt.
Je nach Ergebnis wird die aktuelle Datei in den entsprechenden Ordner verschoben.
Code (* BilderSortieren_601d.app Bild-Dateien in Zielordner verschieben, je nach Pixel-Anzahl und Beschneidungspfad © 20.03.14 / Hans Haesler, Châtelard 52, CH-1018 Lausanne *) global subFolderOne global subFolderTwo global subFolderThr -- einen Dialog zeigen, falls der Anwender einen Doppelklick auf das Droplet macht on run display dialog "Den Quellordner auf das Icon dieses Droplets ziehen." buttons "OK" default button 1 with icon 0 end run -- der 'open handler', welcher auf das Fallenlassen von Objekten reagiert on open allObjects -- das Trennzeichen zurücksetzen set AppleScript's text item delimiters to {""} -- der Pfad des gedroppten Ordners set objPath to (item 1 of allObjects as Unicode text) -- den Container-Ordner speichern tell application "Finder" set folderPath to (container of folder objPath) as string end tell -- der Hauptordner set mainFolder to (folderPath & "Hauptordner") as string -- testen, ob der Hauptordner vorhanden ist tell application "Finder" -- wenn nicht vorhanden, den Ordner erzeugen if not (mainFolder exists) then try make new folder at folderPath with properties {name:"Hauptordner"} end try end if end tell -- die drei Unterordner set subFolderOne to (mainFolder & ":min1000Pixel_Pfad") set subFolderTwo to (mainFolder & ":min1000Pixel_oPfad") set subFolderThr to (mainFolder & ":unter1000Pixel") -- testen, ob die Unterordner vorhanden sind tell application "Finder" if not (subFolderOne exists) then try make new folder at mainFolder with properties {name:"min1000Pixel_Pfad"} end try end if end tell tell application "Finder" if not (subFolderTwo exists) then try make new folder at mainFolder with properties {name:"min1000Pixel_oPfad"} end try end if end tell tell application "Finder" if not (subFolderThr exists) then try make new folder at mainFolder with properties {name:"unter1000Pixel"} end try end if end tell -- den gedroppten Ordner zum Handler 'processFolder' schicken processObject(objPath) -- den Anwender über das Ergbenis der Aktion informieren activate me display dialog "Fertig." buttons "OK" default button 1 with icon 2 giving up after 1 end open -- im folgenden Handler wird festgestellt, ob das Objekt ein Ordner oder eine Datei ist. -- Bei Ordnern wird eine Liste des Inhalts erstellt und die Elemente rekursiv behandelt -- (d.h. zum aktuellen Handler geschickt) -- Dateien werden zum Handler 'processFile' gesandt on processObject(aObject) -- wenn der Pfad mit einem Doppelpunkt endet, ist das Objekt ein Ordner if (aObject as string) ends with ":" then -- die Liste des Inhalts wird erstellt (ohne unsichtbare Dateien) set contentsList to list folder aObject without invisibles -- dies ist das rekursive Teil: die Wiederholschleife schickt alle Objekte zum Handler, -- in welchem sie sich selbst befindet repeat with anItem in contentsList set objPath to ((aObject as Unicode text) & anItem) processObject(objPath as alias) end repeat -- wenn das Objekt eine TIFF-Datei ist, dann wird der Pfad dem Handler 'processFile' übergeben else if (aObject as string) ends with ".tif" then processFile(aObject as Unicode text) end if end processObject -- die Datei in den Zielordner kopieren on processFile(aFile) tell application "Adobe Photoshop CS6" activate try open alias aFile -- Pixel und Anzahl Beschneidungspfade speichern tell current document set docWidth to (width as pixels) set docHeight to (height as pixels) set nMasks to count (every path item whose kind is clipping) end tell close current document saving no end try end tell -- Pixelwerte und Beschneidungspfad prüfen und die Datei entsprechend verschieben if docWidth is greater than or equal to 1000 or docHeight is greater than or equal to 1000 then if nMasks is greater than 0 then try tell application "Finder" to move aFile to subFolderOne with replacing end try else try tell application "Finder" to move aFile to subFolderTwo with replacing end try end if else try tell application "Finder" to move aFile to subFolderThr with replacing end try end if end processFile Hier funktioniert es wie gewünscht. Mit Photoshop CS6 unter Mountain Lion.
Gruss, Hans