Bilder nach Datum in Ordner sortieren automatisch?
Hallo,
Folgendes ich besitze auf meinem FREENAS mittlerweile 19 tsd. Bilder die vom IPhone willkürlich benannt sind, deswegen suche ich eine Methode deren Dateiname in das Aufnahmedatum zu ändern (erster Schritt), dann diese Anhand des geänderten Dateinamens in Monats/Jahres Ordner zu verschieben (zweiter Schritt) das Programm/Script soll abfragen ob es denn Ordner bereits gibt oder ob er den neu Erstellen muss. Das Muster für die Umbenennung wäre am besten DD.MM.YYYY.
Danke schonmal im Voraus
1 Antwort
Für den zweiten Schritt sollte dir das Programm, das ich für das verschieben von Dateien in den jeweiligen Ordner des Monats (=immer Unterordner eines Jahres) geschrieben habe, weiterhelfen: https://github.com/timlg07/Batch_Tools/blob/master/2-1-fileSortDate.cmd
Wie du diese Batch benutzt findest du hier: https://github.com/timlg07/Batch_Tools/blob/master/2-1-fileSortDate.txt
Der erste Schritt sollte mit ren bzw. rename zu machen sein. Mithilfe von %~t1 bekommst du Datum und Zeit (Ich glaube das Datum der letzten Änderung, also nicht zwingend das Erstelldatum), wenn der erste Parameter eine Datei ist. Hier mal ein Beispiel, das dir Datum und Zeit einer Datei ausgibt, die der Batch beim Starten entweder mit Drag&Drop oder per cmd Aufruf mitgegeben wird:
@echo.%~t1&pause>nul
Falls du beim Umbenennen noch Hilfe brauchst, meld dich einfach.
Das Verschieben sollte eigentlich mit dem Erstelldatum und nicht mit dem Änderungsdatum arbeiten, da bei robocopy die Dateiauswahl mit /MAXAGE erfolgt. Mit dem Aufnahmedatum kann man in robocopy leider keine Dateien auswählen.
Ich fürchte mal das Erstelldatum ist in deinem Fall immer das Datum, an dem ein Bild auf den PC kopiert wurde?
Vielleicht hilft dir vorerst das hier weiter:
http://www.wurmweb.at/aufnahmedatum-als-dateiname-total-commander/
Erstmal WOW, danke für die Mühe, es hat super geklappt und genauso wie ich es mir vorgestellt habe, ich bin davon echt begeistert und bedanke mich sehr, für deine Arbeit. :D
Danke für das Skript, es funktioniert sehr gut. Nur mit dem Umbenennen der Fotos/Videos habe ich noch keine Lösung gefunden. Ich möchte gerne alle Fotos nach dem Datum umbenennen, Bsp:
Foto hat das Datum: Sonntag, 16. Juni 2024, 21:13:34
Dann möchte ich gerne das das Foto/Video automatisch in 16.06.2024 21:13 umbenannt wird. Ich kenne mich mit Skripten nicht aus, kannst du mir damit weiterhelfen?
Das funktioniert doch genau mit der Variablenexpansion wie in der Antwort beschrieben (%~t1 = 16.06.2024 21:13). Ich gehe aber mal davon aus, dass du die Datei nicht so wie von dir beschrieben benennen willst, sondern die Dateierweiterung (%~x1 = z.B. .jpg) beibehalten willst. Also z.B.
ren "%~f1" "%~t1%~x1"
Das Problem hierbei ist allerdings, dass der Doppelpunkt kein gültiges Zeichen in einem Dateinamen ist. Du kannst die Datei also nicht so wie von dir gewünscht benennen.
Stattdessen kannst du den Doppelpunkt durch z.B. einen Bindestrich ersetzen:
set "n=%~t1"
ren "%~f1" "%n::=-%%~x1"
Ich hätte da noch ein Nachtrag bzw. Frage, die Batch Datei benutzt leider dass Änderungsdatum (was nicht mit dem Aufnahmedatum übereinstimmt) kann man die Batch noch soweit verändern, dass sie das Aufnahmedatum als Merkmal für die Verschiebung/Erstellung benutzt ?