Wie verwende ich Exiftool, um Datums-Tags gemäß dem Dateipfad zu schreiben?

Ich muss das Exif-Datum-Tag einer Reihe von Fotos festlegen, die mit der folgenden Hierarchie gespeichert sind: YEAR/MONTH/DAY/IMG_something.JPG

Wie könnte ich das einfach mit exiftool machen?

Antworten (1)

Grundsätzlich würde der Befehl ungefähr so ​​​​aussehen,
ExifTool "-TAG<Directory" <DIR or FILE>
vorausgesetzt, die Verzeichnisstruktur ist numerisch, z. B. 2015/07/04.
Es können jedoch Probleme auftreten, je nachdem, welches Tag Sie verwenden möchten. Viele Datums-/Zeit-Tags erfordern sowohl eine Uhrzeit als auch ein Datum, und ich glaube, dass alle EXIF-Datums-/Zeit-Tags in diese Kategorie fallen. Wenn Ihnen die tatsächliche Uhrzeit egal ist, können Sie -TAG<$Directory 00:00:00. Oder wenn Sie die Zeit erhöhen möchten, finden Sie in diesem vorherigen Beitrag Hilfe.

XMP-Tags sind normalerweise flexibler und können ohne Zeitaufwand verwendet werden.

Wenn das Tag bereits eine aktuelle Uhrzeit enthält und Sie nur das Datum ändern möchten, können Sie so etwas verwenden
ExifTool "-DateTimeOriginal<$Directory ${DateTimeOriginal;s/.* //" <DIR or FILE>

Es scheint nicht zu funktionieren. Ich habe versucht: exiftool "-CreateDate<Directory 00:00:00" -r ./ und bekam Fehler wie: Warning: No writable tags set from ./2015/03/03/IMG_3472.JPG Vielleicht hat es damit zu tun dass das Directory-Tag mit einem ./ ?
Zwei Dinge zu versuchen, Fehler meinerseits. Wenn Sie unter Linux/Mac laufen, ändern Sie die doppelten Anführungszeichen in einfache Anführungszeichen. Außerdem habe ich vergessen, der Aufgabe ein Dollarzeichen hinzuzufügen, weil ich Tag und Text gemischt habe. Probieren Sie dies aus. exiftool '-CreateDate<$Directory 00:00:00' -r ./ Das ./sollte überhaupt kein Problem sein. Der Autor des Programms verwendet ständig ähnliche Beispiele und ich habe es gerade auf meinem Windows-Computer getestet und es hat gut funktioniert.