Suche Tool zum Umbenennen von Dateien mit besonderer Herausforderung

priv69gmxde

Newbie
Registriert
Aug. 2012
Beiträge
3
Hallo miteinander,

dies ist mein erstes Posting und hoffe, mein Anliegen korrekt formulieren zu können.

ZIELSETZUNG:
Ich möchte gerne meine grosse Bildersammlung (ca. 150.000 Stück) sortieren, die aus CR2 und JPG Dateien besteht.
Dabei soll die Datei folgendem Muster enstpechen:

2011-12-31----23-59-30 Uhr.CR2

Also der erste Part nur das Erstellungsdatum, dann nach dieser Zeichenkette "----" die tatsächliche Aufnahmezeit.

Bisher wäre es gar kein Problem, dies mit AntRenamer oder AdvancedRenamer & Co zu realisieren.

PROBLEM:
Meine EXIF bzw. IPTC bzw. XMP-Daten innerhalb der Dateien sind durch diverse Manipulationen leider zerstört. Daher bediene ich mich auch den Dateiinformationen, welche durch den Windows Fileexplorer auch angezeigt werden können.
Mit diversen Tools kann ich nun eine Bilddatei umbennen, die nun heisst:

2011-12-31--------2012-01-01.CR2

Der erste Datumsbereich ist das Erstellungsdatum nach Explorer, der zweite nach EXIF.

ZIEL:

Ich suche nun ein Programm, der alle Dateien sich heranreisst und innerhalb des Dateinamens jenes Datum aussucht, welches am weitesten in der Vergangenheit liegt.
Denn nur dies kann dann letzendlich das Erstellungsdatum des Bildes sein. Also nicht als Datei auf dem PC erstellt, sondern quasi der "Knippstag", wo ich die Kamera in der Hand hatte und das Bild geschossen habe.

Hierbei ist aber zu beachten, dass unter Umständen auch 3-4 Datumsanzeigen im Dateiname stehen können.
Also etwa:
"2011-12-31--------2009-01-01--------2010-05-12--------2099-12-12.CR2"

Dieses Tool soll nun alle Datumsangaben innerhalb des Dateinamens durchforsten und nur das älteste Datum stehen lassen und alle anderen löschen.

Somit soll die obige Datei am Schluss so aussehen:
2009-01-01.CR2

Die Trennstriche zwischen den einzelnen Datumsangeben im Dateinamen sind immer 8 x "-" lang. Also kontinuierliches Format!

Hat jemand eine Idee oder eine Anleitung für eine BATCH, die mir aus der Patsche hilft?? :-))

Besten Dank im Voraus.

Gruss
Dave

P.S.:

Ich vergass zu erwähnen, dass neben dem Datum auch analog die Uhrzeit mitgeführt werden soll. Also sollte die Datei am Schluss z.B. so aussehen: 2009-01-01----19-39-58.CR2
 
Zuletzt bearbeitet:
EInfachere (und komplexere) Dateiumbenennungs-Programme gibts wie Sand am Meer. Ob die allerdings deinem doch recht verwirrenden Wunsch nach x Datums-Angaben unterstützen, darf mehr als nur bezweifelt werden. Vor allem, da ja EXIF-Infos teilweise zerstört sind. Und zudem willst du ja auch noch "Wo"-Daten haben... wie sollen die aussehen "----Buxtehude-Nord" oder doch GPS-Daten? Wobei es da schon professionelle Tools gibt, die kosten dann aber ne Ecke.

Und aus beruflicher Erfahrung: Je komplexer ein Sortierungs-System ist, desto fehleranfälliger und "Wartungsintensiver" ist es. Also lass es, bevor du irgendwann Frust schiebst.
 
Zuletzt bearbeitet:
Ich kenn zwar kein Programm dass das kann was du willst, aber ich könnte dir schnell eins schreiben, dürfte ne sache von 5-10 min sein.

Ich hab nur nicht kapiert von woher die Uhrzeit kommen soll.
Ist das die Erstellungszeit auf der Festplatte?

Wenn du mir das sagst bastel ich dir schnell ein kleines Command Line Tool.
 
Hallo Singler,

danke für Deine Antwort!
Ich schätze zwar Deine berufliche Erfahrungen und würde gerne Deiner Empfehlung nachkommen. Jedoch muss ich endlich mal eine Ordnung hier rein bringen.
Der zweite Nachwuchs ist unterwegs und dann wird sich die Menge verdoppeln :-))

By the way: Der Dateiname soll nirgends eine ORT-Angabe beinhalten.
Lediglich Aufnahmedatum und Aufnahmezeit.

VG
Dave

-----------------------------------
-----------------------------------




Hallo Grantig,

ich danke Dir vorerst sehr für Dein Hilfeangebot!!! Echt klasse Engagement!! :-)
Gerne beschreibe ich Dir, wie ich es gerne alös Endresultat hätte.

Der Endstand ist nun der, das ich pro Bilddatei einen Dateinamen generiere, die aus diversen Renamer-Tools folgendes Format hat:

(ich spanne den Namen bewusst auf, um unten diese zu kommentieren!)

"2011-12-31----18-39-55-------------------2009-01-01----18-41-21.CR2"
AufnahmeDatumUndUhrzeitAusTool1 AufnahmeDatumUndUhrzeitAusTool2

Ensprechend dieser Analogie kann die Datei jedoch auch 3 oder 4 "Namensbündel" beinhalten. Also wenn ein Tool3 und Tool4 auch noch andere Aufnahmedaten aus der Datei ermitteln konnten und diese in den Datenamen eingefügt haben.

Ziel des Scriptes ist es nun, anhand dieser möglichen Vorkommen von 1,2,3 oder 4 Aufnahmedatum(immer mit Uhrzeit gepaart!) innerhalb eines Dateinamens, alle rauszuschmeissen und nur das älteste Aufnahmedatum+Aufnahmezeit beizubehalten.

Die obige Datei soll dann also aussehen wie folgt:
2009-01-01----18-41-21.CR2
Da eben 2009-01-01----18-41-21 älter ist als 2011-12-31----18-39-55.

Die Meisterklasse wäre natürlich, das beim Auftreten von zwei identischen Aufnahmetagen, dann automatisch die Uhrzeit als Kriterium herangezogen würde.
Also wenn die von mir gelieferte Datei heisst:

2009-01-01----18-41-21-------2009-01-01----18-40-15.CR2

soll daraus ein

2009-01-01----18-40-15.CR2, da diese das älteste Datum bzw Uhrzeit ist.

Ich hoffe nun, dass ich trotz Komplexität meines Zieles trotzdem plausibel übermitteln konnte, was genau ich meine.

Wenn nichts dagegenspricht, könnte ich Dich auch gerne mal telefonisch kontaktieren.
Nur wenn Du magst natürlich! :-)

Ein ganz grosses Dankeschön vorab und ganz viele Grüße
Dave
Ergänzung ()

Hallo Grantig,

ich danke Dir vorerst sehr für Dein Hilfeangebot!!! Echt klasse Engagement!! :-)
Gerne beschreibe ich Dir, wie ich es gerne alös Endresultat hätte.

Der Endstand ist nun der, das ich pro Bilddatei einen Dateinamen generiere, die aus diversen Renamer-Tools folgendes Format hat:

(ich spanne den Namen bewusst auf, um unten diese zu kommentieren!)

"2011-12-31----18-39-55-------------------2009-01-01----18-41-21.CR2"
AufnahmeDatumUndUhrzeitAusTool1 AufnahmeDatumUndUhrzeitAusTool2

Ensprechend dieser Analogie kann die Datei jedoch auch 3 oder 4 "Namensbündel" beinhalten. Also wenn ein Tool3 und Tool4 auch noch andere Aufnahmedaten aus der Datei ermitteln konnten und diese in den Datenamen eingefügt haben.

Ziel des Scriptes ist es nun, anhand dieser möglichen Vorkommen von 1,2,3 oder 4 Aufnahmedatum(immer mit Uhrzeit gepaart!) innerhalb eines Dateinamens, alle rauszuschmeissen und nur das älteste Aufnahmedatum+Aufnahmezeit beizubehalten.

Die obige Datei soll dann also aussehen wie folgt:
2009-01-01----18-41-21.CR2
Da eben 2009-01-01----18-41-21 älter ist als 2011-12-31----18-39-55.

Die Meisterklasse wäre natürlich, das beim Auftreten von zwei identischen Aufnahmetagen, dann automatisch die Uhrzeit als Kriterium herangezogen würde.
Also wenn die von mir gelieferte Datei heisst:

2009-01-01----18-41-21-------2009-01-01----18-40-15.CR2

soll daraus ein

2009-01-01----18-40-15.CR2, da diese das älteste Datum bzw Uhrzeit ist.

Ich hoffe nun, dass ich trotz Komplexität meines Zieles trotzdem plausibel übermitteln konnte, was genau ich meine.

Wenn nichts dagegenspricht, könnte ich Dich auch gerne mal telefonisch kontaktieren.
Nur wenn Du magst natürlich! :-)

Ein ganz grosses Dankeschön vorab und ganz viele Grüße
Dave
 
Zuletzt bearbeitet:
So komplex ist das garnicht, hab inzwischen schon kapiert wie dus haben willst ;)


Ich hab ne Konsolenanwendung geschrieben, weil ich davon ausgehe du kannst damit umgehen.
Wenn du die .exe einfach ohne Parameter oder mit dem Parameter /? aufrufst, wird eine kleine Anleitung eingeblendet, da habe ich (hoffentlich) recht gut erklärt wie das Programm funktioniert.

Hier nochmal kurz die wichtigsten Funktionen zusammengefasst:
Parameter:
----------

/e: Optional. Gibt die Endungen der Dateien an die umbenannt werden sollen.

/s: Optional. Gibt an, dass auch Unterverzeichnisse durchsucht werden sollen.
Ist denke ich relativ logisch.

Ein Beispiel Aufruf würde so aussehen:
rename.exe "C:\Meine Bilder" /e:jpg;cr2 /s
Das Programm würde dann den Ordner "Meine Bilder" und alle Unterordner (wegen /s) durchsuchen und Dateien mit den Endungen .jpg und .cr2 umbenennen.
Groß/Kleinschreibung wird übrigens komplett ignoriert, es ist also z.B. egal ob du /e:JPG;CR2 oder /e:jpg;cr2 schreibst.

Wichtig ist, dass der Pfad in Anführungszeichen stehen muss, wenn er Leerzeichen enthält, sonst wird er von der Konsole falsch interpretiert.


Wenn der Parameter /s nicht angegeben wird, werden keine Unterordner durchsucht.
Wenn der Parameter /e nicht angegeben wird, werden alle Dateien unabhängig von der Endung umbenannt (wenn möglich).
Beim Parameter /e müssen die Dateiendungen durch ein Semikolon (; ) getrennt werden.

Sowohl Datum, als auch Uhrzeit werden zum Vergleich benutzt und wenn das Datums/Uhrzeitformat stimmt (yyyy-MM-dd----HH-mm-ss, z.B: 2011-05-25----18-11-12) wird das "früheste" Datum (+Uhrzeit) als neuer Dateiname genutzt.

Außerdem ist das Programm auch recht tolerant, d.h. solange es eine valide Kombination aus Datum und Uhrzeit findet ist es relativ egal, was sonst noch im Dateinamen enthalten ist.
Es ist nur wichtig, dass zwischen Datum und Uhrzeit nur (beliebig viele) Bindestriche und keine anderen Zeichen sein dürfen.

Kleines Beispiel:
30q9zh0h#2010-12-01--18-14-12asdfgh----2010-12-01------17-13-12.jpg
würde auch erkannt werden. Das Ergebnis wäre: 2010-12-01----17-13-12.jpg


Probier am besten mal an ein paar Dateien aus, ob alles problemlos funktioniert bevor du es auf die komplette Sammlung loslässt.

Ich hoffe es hilft dir weiter! :)
 

Anhänge

  • rename.zip
    84 KB · Aufrufe: 345
Hi nochmals,

habe jetzt Deine Antwort gesehen und wollt mich (unabhängigi davon, ob's funktioniert oder nicht) ganz herzlich für Deine Bemühungen bedanken.

Da ich erst so in einer Stunde zum Testen komme (muss noch entsprechendes VM-Image zurückspielen :-) werde ich auch das Resultat erst dann mitteilen können.

Aber es hört sich schon mal ganz gut an und bin wirklich super gespannt drauf :-))

Also dann bis nachher.. :-)

VG
Dave
Ergänzung ()

Hallo Grantig,

wouwwwww!!!!!
Ich sage nur SPITZE und 1000 DANK!!!!!!

Es funktionioert genauso, wie ich es haben wollte.
Nur bei wenigen Daten bekam ich in der Command-Shell die Fehlermwledung, dass er vorhandene Dateien nicht überschreiben kann.
Beim genaueren Hinsehen, waren wirklich schon Dateinamen vorhanden, die vom Namen identisch waren, wie Dein Tool es gerne umbenannt hätte. Also konnte er das Umbenennen nicht sauber terminieren.
Aber das passt schon....

Die würde ich dann von Hand raussortieren...Wenn es hoffentlich nicht zu viele sind.

Oder glaubst Du (und das fällt mir so gerade beim Schreiben ein) dass es ohne grosses Modifizieren des Quellcodes möglich wäre, genau solche Dateien, besonders zu markieren...??
Evtl in dem er einen "_" vor den Dateinamen platziert, damit ich später dann nur noch alphabetisch sortiere im Dateiexplorer und gleich die ersten "Underscoredaten" rausfischen kann???

Wenn nicht, ist es - wie gesagt - wirklich mehr als genug, was ich bereits bekommen habe von Dir..

Nochmals ganz ganz grosses Dankeschön!!!! :-)

Viele Grüße
Dave
 
Zurück
Oben