Hallo Eugen,
okay, dann speichere bitte mal den folgenden Code im Dateiformat "Programm".
Das Ergebnis ist ein Droplet, auf dessen Icon Du die Dateien ziehen kannst.
Die Dateien können sich auch in einem Ordner befinden und Du kannst diesen Ordner auf das Icon droppen.
Code (* OrdnerErzeugen_02d.app Dieses Script erzeugt Ordner aufgrund der ersten zwei Worte von Datei-Namen und verschiebt die Dateien hinein © 23.07.14 / Hans Häsler, Châtelard 52, CH-1018 Lausanne *) -- einen Dialog zeigen, falls der Anwender einen Doppelklick auf das Droplet macht on run display dialog "Ordner oder Dateien auf dem Icon dieses Droplets deponieren." buttons "OK" default button 1 with icon 0 end run -- der 'open handler', welcher auf das Fallenlassen von Objekten reagiert on open allObjects set AppleScript's text item delimiters to " " -- Wiederholschleife, welche die gedroppten Objekte zum Handler 'processObject' schickt repeat with aObject in allObjects processObject(aObject) end repeat set AppleScript's text item delimiters to {""} -- den Anwender informieren display dialog "Fertig." buttons "OK" default button 1 with icon 1 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 Datei ist ... else tell application "Finder" -- den Namen der Datei ... set fullName to name of file aObject -- und den Pfad zum Ordner speichern set contPath to (container of file aObject) as Unicode text end tell -- ... dann werden die Pfade und der Dateiname dem Handler 'processFile' übergeben processFile(contPath, aObject, fullName) end if end processObject -- die aktuelle Datei behandeln on processFile(contPath, aObject, fullName) -- eine Liste der Worte des Dateinamens erzeugen set partList to text items of fullName -- wenn die Liste mehr als ein Element enthält ... if (count of partList) is greater than 1 then -- den Ordnernamen zusammensetzen set folName to (text items 1 thru 2 of partList) as string -- und auch den vollen Pfad zum Ordner set curFolder to contPath & folName tell application "Finder" -- wenn der Ordner nicht vorhanden ist ... if not (exists curFolder) then -- den Ordner erzeugen make new folder at contPath with properties {name:folName} end if -- die aktuelle Datei hineinverschieben move file aObject to curFolder end tell end if end processFile Hier funktioniert es wie vorgesehen. Und bei Dir?
Gruss, Hans