Automator: Dateien entsprechend der übergeordneten Ordner umbenennen

Akanab

Akanab

Registriert
Thread Starter
Dabei seit
03.07.2015
Beiträge
1
Reaktionspunkte
0
Hallo, ich bin Stefan und neu hier, deshalb ein freundliches Hallo in die Runde. :)

Mein Problem, weswegen ich hier Hilfe suche:
Angenommen ich habe folgende Ordner-/Dateistruktur:
Code:
|____Ordner 1
| |____datei.doc
| |____datei.txt
| |____datei.xls
|____Ordner 2
| |____datei.doc
| |____datei.txt
| |____datei.xls
|____Ordner 3
| |____datei.doc
| |____datei.txt
| |____datei.xls

Der Basisname ist immer fest (also datei). Die Dateiendung ist variabel und kann auch andere Dateitypen umfassen (.pdf, .png u.s.w.)
Ich möchte nun sämtlichen Dateien von datei.* in Ordnername.* umbenennen.
Dazu habe ich mir mittels Automator einen Workflow geschrieben, der funktioniert, wenn ich nur ein Verzeichnis wähle. Wenn ich mehrere Verzeichnisse wähle, dann erhalten alle Dateien den Ordnernamen des (alphabetisch) letzten Ordners.

Hier mal der Workflow:
Bildschirmfoto 2015-07-03 um 18.46.28.png
Bildschirmfoto 2015-07-03 um 18.47.00.png
Bildschirmfoto 2015-07-03 um 18.47.29.png
Bildschirmfoto 2015-07-03 um 18.47.48.png
Code:
on run {input, parameters}
    set output to {}
    repeat with i in input
        tell application "Finder"
            #set end of output to name of folder of i
            set output to name of folder of i
        end tell
    end repeat
    return output
end run

Soweit so gut.

Wenn ich mehrere Verzeichnisse wähle, dann zeigt sich wie gesagt o.g. Verhalten. Also dachte ich mir: Speicher doch im Applescript den Ordnernamen in einem Array (siehe auskommentierte Zeile). Dann wirds aber ganz verrückt, dann nimmt er alle gefundenen Ordner als Ordnernamen mit Zeilenumbruch im Namen:
Bildschirmfoto 2015-07-03 um 19.08.13.png

Das Problem ist wohl, dass Automator die gefundenen Ordner nicht einen nach dem anderen durchgeht, sondern alles in einen Sack hat. :-(

Ich hoffe mal, dass wir das ohne aufwendiges Scripting gelöst bekommen.
 
Hallo,

du hast das Problem soweit richtig erkannt.
Kürze die Sache ab:
• Nach Finder Objekten fragen
• Ordnerinhalt
• Applescript
Fertig

So in dieser Art:
Code:
on run {input, parameters}
repeat with i in input
tell application "Finder"
try
set myFolder to name of (container of i)
set myExtension to name extension of i
if myExtension ≠ "" then set name of i to myFolder & "." & myExtension
end try
end tell
end repeat
return input
end run

Da kann man noch weitere Konditionen und Warnungen einbauen...für deinen Fall aber nicht nötig

Gruß
 
  • Gefällt mir
Reaktionen: Akanab
Zurück
Oben Unten