Ich habe eine Bibliothek mit etwa 25.000 Fotos (JPGs). Ich habe die Bibliothek so gepflegt, dass das Aufnahmedatum in den EXIF-Daten das tatsächliche Aufnahmedatum widerspiegelt, aber ich finde immer wieder Ausnahmen, bei denen ich das eine oder andere Foto übersehen habe.
Da die Dateien alle "YYYY xxxx" heißen (wobei YYYY das Aufnahmedatum und xxxx eine Beschreibung ist), möchte ich versuchen, alle Dateien zu finden, bei denen das Jahr des Aufnahmedatums in den EXIF-Daten nicht mit den ersten 4 Zeichen übereinstimmt des Dateinamens.
Kennt jemand eine Möglichkeit, dies zu tun? Ich verwende Windows 7 X64
ExifTool ist ein plattformübergreifendes Tool, das über die Windows-Befehlszeile funktioniert. Es ist sehr leistungsfähig, mit einer Perl-basierten Syntax, die den Vergleich verschiedener Metadaten ermöglicht. In einem Verzeichnis voller JPEG-Dateien druckt dieser Befehl eine Liste aller Dateien, bei denen der Anfang des Dateinamens nicht mit dem Jahr aus dem EXIF-Wert des Aufnahmedatums übereinstimmt:
exiftool -d "%Y" -if "$FileName !~ /^$DateTimeOriginal/" -p "$FileName" *.jpg
Beachten Sie die doppelten Anführungszeichen, da Sie Windows verwenden. Verwenden Sie auf Mac oder Linux einfache Anführungszeichen:
exiftool -d '%Y' -if '$FileName !~ /^$DateTimeOriginal/' -p '$FileName' *.jpg
Dadurch wird auch so etwas wie „1600 Dateien fehlgeschlagen“ ausgegeben – hier bedeutet „fehlgeschlagen“, dass sie korrekt benannt wurden , da die angegebene „Bedingung“ nicht übereinstimmt, was vom !~
Operator angezeigt wird. Ändern Sie dies zu, =~
wenn Sie möchten, dass nur die Dateien gedruckt werden, die übereinstimmen . (Das ^
gibt den Anfang der Datei an – die Syntax ist die von regulären Perl-Ausdrücken .)
Der Teil -d '%Y'
legt das Datumsformat so fest, dass es nur das Jahr ist. Sie können dies an Ihre Namenskonvention anpassen. Wenn Ihre Dateien beispielsweise mit einem vierstelligen Jahr, einem zweistelligen Monat und einem zweistelligen Tag beginnen sollen, die durch einen Bindestrich getrennt sind, verwenden Sie -d '%Y-%m-%d'
.
Wenn Sie mehrere Ordner haben, ersetzen Sie *.jpg
am Ende der Zeile durch -r .
, wodurch ExifTool in jedem rekursiv ausgeführt wird. (Das .
setzt voraus, dass Sie im aktuellen Verzeichnis beginnen möchten – ändern Sie das .
in einen Pfadnamen, wenn Sie es woanders ausführen möchten). Auch in diesem Fall möchten Sie wahrscheinlich -p '$Directory/$FileName
statt nur FileName allein.
Wenn Sie sich damit befassen möchten, kann ExifTool die Dateien sogar bedingt umbenennen, sodass Sie das Obige erweitern können, um Ihre Problemdateien zu beheben, anstatt sie nur zu identifizieren.
Sie könnten auch ExifTool verwenden, um den Beschreibungsteil Ihres Dateinamens in die internen Metadaten der Datei zu kopieren und ihn vielleicht als XMP-Titel festzulegen.
Ich habe dazu Advanced Renamer verwendet. Verwenden Sie die Replace-Methode und verwenden Sie die Bild-Tags als Ersatztext.
es m
mattdm
mattdm
es m
mattdm