Script zum Sortieren von Dateien im Ordner gesucht

space

Neuer Berner Rosenapfel
Registriert
02.12.05
Beiträge
1.949
Falls Du deine Fotos immer in den gleichen Ordner importierst, wäre eine Ordneraktion doch nett.
Auch wie in dem Skript von pi26 werden (einmalig) zwei neue Ordner erstellt und die Dateien nach ihren Endungen getrennt abgelegt ... so aber ohne auch nur einen extra Klick

Code:
property JPG_foldername : "JPG"
property RAW_foldername : "RAW"

property JPG_extension_list : {"jpg", "jpeg", "JPG", "JPEG"}
property RAW_extension_list : {"raw", "RAW"}

on adding folder items to this_folder after receiving these_items

	tell application "Finder"
		if not (exists folder JPG_foldername of this_folder) then
			make new folder at this_folder with properties {name:JPG_foldername}
		end if
		
		if not (exists folder RAW_foldername of this_folder) then
			make new folder at this_folder with properties {name:RAW_foldername}
		end if
				
		move (every file of this_folder whose name extension is in the JPG_extension_list) to folder "JPG" of this_folder
		move (every file of this_folder whose name extension is in the RAW_extension_list) to folder "RAW" of this_folder

	end tell
	
end adding folder items to


Gruss
 

crashpixel

Süsser Pfaffenapfel
Registriert
22.12.04
Beiträge
671
Falls Du deine Fotos immer in den gleichen Ordner importierst, wäre eine Ordneraktion doch nett.
Auch wie in dem Skript von pi26 werden (einmalig) zwei neue Ordner erstellt und die Dateien nach ihren Endungen getrennt abgelegt ... so aber ohne auch nur einen extra Klick

Code:
property JPG_foldername : "JPG"
property RAW_foldername : "RAW"

property JPG_extension_list : {"jpg", "jpeg", "JPG", "JPEG"}
property RAW_extension_list : {"raw", "RAW"}

on adding folder items to this_folder after receiving these_items

	tell application "Finder"
		if not (exists folder JPG_foldername of this_folder) then
			make new folder at this_folder with properties {name:JPG_foldername}
		end if
		
		if not (exists folder RAW_foldername of this_folder) then
			make new folder at this_folder with properties {name:RAW_foldername}
		end if
				
		move (every file of this_folder whose name extension is in the JPG_extension_list) to folder "JPG" of this_folder
		move (every file of this_folder whose name extension is in the RAW_extension_list) to folder "RAW" of this_folder

	end tell
	
end adding folder items to


Gruss


Ordneraktionen werden ja auch von 10.3 unterstützt, allerdings habe ich bei meinem Versuch nur vorgefertigte Aktionen gefunden. Kopiere ich das obige Script einfach und speichere es mit der entsprechenden Endung ab, um es anschließend als Ordneraktion benutzen zu können?

Wird echt mal Zeit, daß ich mich ein wenig mit Scripten unter OS X beschäftige...
 

space

Neuer Berner Rosenapfel
Registriert
02.12.05
Beiträge
1.949
Du öffnest den Scripteditor und fügst es dort in ein Fenster ein und klickst auf "Übersetzen". Danach speicherst Du es als Skript ab (Am besten in Library/Scripts oder ~Library/Skripts)

Da ich nur Tiger kenne, weiss ich nicht, wie bei Panther da aussieht. Hier jedenfalls kann ich mit ctrl-Klick auf den Ordner meiner Wahl eine "Ordneraktion anhängen..." und dann einfach dieses gespeicherte Skript auswählen. Unter anderem deshalb liegen meine Skripte in dem Ordner ~Library/Scripts ... auch, weil man in den Einstellungen des Applescript Dienstprogrammes das "Skriptmenü in der Menüleiste einblenden" kann ...

Sollte bei Panther dieses ctrl-Klick Kontextmenü nicht existieren (was durchaus sein kann) so ... hm ... würde ich dieses Skript eben in jenen, von dir beschriebenen "Auswahl"-Ordner legen, welcher unter Tiger hier zu finden ist:
/Library/Scripts/Folder Action Scripts

Danach werden -wie schon geschrieben- beim ersten Hinzufügen eines Files zu dem Ordner mit der angehängten Ordneraktion die zwei Unterordner "JPG" und "RAW" erstellt und alle Files mit den entsprechenden Endungen "automatisch" in diese Unterordner sortiert

Gruss
 

ml & k

Stechapfel
Registriert
18.06.05
Beiträge
163
Eine "Schlaufe" klingt ja süß ;)... Wie wäre es mit dieser Variante ohne "Schlaufe":
Code:
#!/bin/bash

#Ordner erstellen wo die Files reinkommen
mkdir ~/Desktop/JPG
mkdir ~/Desktop/RAW

# Erst alles nach RAW kopieren (ich kene die Extension davon nicht)
cp /Volumes/Kameraordner/* ~/Desktop/RAW
# Dann alle jpeg gebräuchlichen Endungen (die ich kenne) ins JPG verschieben
mv ~/Desktop/RAW/*.{jpg,jfif,jpeg} ~/Desktop/JPG

#Und fertig
exit 0

Schlaufe halt ;)

Aber hast schon recht... Das ginge wesentlich einfacher. Und wie schön die Regex drinnen sind. Cool :cool:

Gruss, ml & k