Ordneraktion: Verschiebe Datein aus Ordner A in Ordner C der in Ordner B erstellt wird…?!

Ja ehm… die Überschrift trifft es ziemlich genau, mehr Worte (z.B. Ordner) würden nur verwirren =)

Code zum markieren einmal anklicken Code im Skript-Editor öffnen

–Ordner-Aktion die alle betroffenen Dateien in einen anderen (neu erstellten Ordner

— verschiebt, dessen Name vorher abgefragt wird.

— dieser neue Ordner wird wiederum in einem anderen Ordner erstellt, von dem sich ein Alias

— in dem Ordner der Ordner-Aktion befindet.

— Befindet sich bereits eine Datei mit dem gleichen Namen im Zielverzeichnis,

— wird diese NICHT überschrieben, sondern die neue Datei wird entsprechend umbenannt (durchnummeriert).

— ehm, um wieviele verschiedene Ordner geht es hier eigentlich?

on adding folder items to this_folder after receiving these_items

try

tell application “Finder”

set folderkind to kind of folder 1 of startup disk

set aliascount to count of every alias file of (this_folder as reference)

–wenn der Alias des Zielordners vorhanden ist kann es weitergehen

if aliascount is 1 then

set destination_folder to (original item of alias file 1 of (this_folder as reference))

set destination_folder_posix to POSIX path of (destination_folder as alias)

–ist der Zielordner auch ein Ordner oder eine Datei? Dann Fehler!

if kind of destination_folder is not folderkind then

error “Hm, der Zielordner ist gar kein Ordner…”

end if

–Ordnernamen abfragen, der im Zielordner angelegt werden soll

set foldername to text returned of (display dialog “Bitte die Ausgabe und das Jahr angeben:” buttons {“Ok”} default button “Ok” default answer “Woche-Jahr”)

— den Ordner anlegen

do shell script “mkdir -p ” & quoted form of (destination_folder_posix & foldername)

— und jetzt jede Datei in den neu angelegten Zielordner bewegen, dabei aber auf doppelte Dateinamen achten und ggf. umbenennen

repeat with this_item in these_items

set item_name to name of this_item

set this_item_posix to POSIX path of (this_item as reference)

set uniq_name to my checkname_with_pdf_suffix(item_name, folder foldername of destination_folder, false)

do shell script “mv ” & quoted form of this_item_posix & ” ” & quoted form of (destination_folder_posix & foldername & “/” & uniq_name)

end repeat

else

error “Zielalias nicht vorhanden oder es gibt mehr als einen Alias…”

end if

end tell

on error msg

display dialog msg

end try

end adding folder items to

to checkname_with_pdf_suffix(n, D, looped)

–check if filename exists in D

— so if “A File.pdf” exists it names it “A File 1.pdf”,”A File 2.pdf”,…

tell application “Finder”

set thefiles to name of every item of (D as alias)

end tell

if thefiles contains n then

if looped = false then

set n to ((characters 1 through -5 of n) & ” 1″ & (characters -4 through -1 of n)) as text

my checkname_with_pdf_suffix(n, D, true)

else

set tmp to (last word of ((characters 1 through -5 of n) as text) as integer)

set tmpcount to (count of characters of (tmp as text)) + 5

set tmp to tmp + 1

set n to ((characters 1 through (-1 * tmpcount) of n) & tmp & (characters -4 through -1 of n)) as text

my checkname_with_pdf_suffix(n, D, true)

end if

else

return n

end if

end checkname_with_pdf_suffix

Leave a Reply