• Apfeltalk ändert einen Teil seiner Allgemeinen Geschäftsbedingungen (AGB), das Löschen von Useraccounts betreffend.
    Näheres könnt Ihr hier nachlesen: AGB-Änderung
  • Was gibt es Schöneres als den Mai draußen in der Natur mit allen Sinnen zu genießen? Lasst uns teilhaben an Euren Erlebnissen und macht mit beim Thema des Monats Da blüht uns was! ---> Klick

Wie Dateien in Monatsordner einsortieren?

ignoramus

Grahams Jubiläumsapfel
Registriert
09.07.09
Beiträge
103
Hallo!

Bisher nutze ich Hazel, um Dateien, die ich einen Ordner "Inbox" werfe, automatisch mit dem aktuellen Datum am Anfang des Dateinamens zu versehen und in einen Order "Materialien/2011-6/" zu verschieben. Da ich jetzt 15 Rechner mit einem solchen Workflow ausstatten möchte, frage ich mich, ob das nicht bereits mit Hausmitteln von MacOS X geht, also mit dem Automator oder halt mit AppleScript.

Das Umbenennen und Verschieben von Dateien in einen bestehenden Ordner habe ich über den Automator problemlos hinbekommen. Was ich nicht lösen konnte, ist, die Unterordner nach dem aktuellen Datum zu wählen. Also derzeit sollen alle Dateien im Ordner "Materialien/2011-06/" landen, ab nächstem Monat halt in "Materialien/2011-07/".

Kann mir jemand einen Tipp geben? Geht das nicht mit dem Automator?

Danke und viele Grüße!
Karl
 

-hans-

Jamba
Registriert
02.09.10
Beiträge
56
As

Hallo,

per AS als FolderAction:

Code:
(*
Dies ist eine Ordneraktion, die an einen Ordner angehangen wird.
*)


on adding folder items to this_folder after receiving these_items
	
	set _path to (path to desktop as text) & "Materialien:" --Dieser Ordner wird automatisch auf dem Desktop angelegt, bei Bedarf ändern 
	
	--Aktuelles Datum wird in einzelnen Bestandteile zerlegt
	tell (current date)
		set _day to my _leading(((its day as number) as text))
		
		set _month to my _leading(((its month as number) as text))
		
		set _year to (its year as text)
	end tell
	
	set {TID, text item delimiters} to {text item delimiters, ":"}
	
	--Schleife durch die neuen Dateien im Hotfolder
	repeat with i from 1 to count of these_items
		try
			set _file to item i of these_items
			--neuer Dateiname
			set _fName to (_year & "_" & _month & "_" & _day) & "_" & (text item -1 of (_file as text))
			--Zielpfad wird bei Bedarf automatisch erstellt
			set _dirPath to (_path & _year & "_" & _month)
			do shell script "mkdir -p " & quoted form of POSIX path of _dirPath
			--Datei in Monatsordner bewegen
			do shell script "mv -f " & quoted form of POSIX path of _file & space & quoted form of POSIX path of (_dirPath & ":" & _fName)
		on error e
			display dialog e
		end try
	end repeat
	
	set AppleScript's text item delimiters to TID
end adding folder items to

--leading 0 für einstellige Vorkommen
on _leading(_string)
	if (count of _string) is 1 then
		return "0" & _string
	else
		return _string
	end if
end _leading

Lieben Gruß

Hans-Gerd Claßen
 

ignoramus

Grahams Jubiläumsapfel
Registriert
09.07.09
Beiträge
103
Hallo!

Vielen herzlichen Dank!! Du hast mir sehr geholfen. Werde das Skript jetzt mal durchdringen und ausführlich testen. Der erste kurze Versuch gerade hat wunderbar funktioniert.

Sorry für die späte Antwort, ich habe mir noch ein paar Tage Urlaub gegönnt. :-D

Viele Grüße!
Karl