Ich verwende ExifTool, um alle meine Bilder mit den folgenden zwei Befehlen stapelweise umzubenennen:
"-FileName<${Exif:Model}-(%%f).%%e"
-d %%Y%%m%%d-%%H%%M%%S-%%%%f.%%%%e "-FileName<DateTimeOriginal"
Dies gibt mir Dateinamen wie:
20110711-144637-DMC-FZ28-(P1020103).JPG
und
20110711-145144-iPhone 4-(IMG_1004).JPG
Ich habe einige Bilder erhalten, die mit einem Samsung S860 aufgenommen wurden, das ein Modell-Tag von hat<KENOX S860 / Samsung S860>
Ich bin mir nicht sicher, ob ExifTool (v8.60) selbst oder die Windows-Befehlsshell (7 64-Bit) dies tut, aber der erste Befehl behandelt das /
als Verzeichniswechsel und gibt beim Ausführen einen Fehler aus :
Warning: Error creating directory for '<KENOX S860 / Samsung S860>-(SDC12529).JPG' - D:/Users/xxx/Desktop/ExifProcess/SDC12529.JPG
Error creating directory <KENOX S860
Gibt es eine Möglichkeit, ExifTool zu zwingen, dem Schrägstrich zu entkommen?
Ich habe die Optionen und ausprobiert, die die -ex
und -E
codieren <
, >
aber nicht die /
.
Gibt es eine Möglichkeit, ExifTool zu zwingen, das nicht /
als Teil des Pfads zu behandeln?
Unten ist die vollständige process.bat
Datei, die ich verwende:
@Echo Off
MD D:\Users\xxx\Desktop\ExifProcess
COPY D:\Users\xxx\Pictures\Import\*.jpg D:\Users\xxx\Desktop\ExifProcess
"P:\Program Files (x86)\ExifTool\exiftool.exe" "-FileName<${Exif:Model}-(%%f).%%e" D:\Users\xxx\Desktop\ExifProcess\*.jpg
"P:\Program Files (x86)\ExifTool\exiftool.exe" -d %%Y%%m%%d-%%H%%M%%S-%%%%f.%%%%e "-FileName<DateTimeOriginal" D:\Users\xxx\Desktop\ExifProcess\*.jpg
Pause
Dies wurde zwar schon vor einiger Zeit gefragt, aber da keine Antwort als Antwort markiert ist, biete ich diese an.
Vielleicht besteht die Lösung darin, das Semikolon hinter dem Modell zu verwenden, um ungültige Zeichen zu entfernen > Modell;
exiftool '-filename<%f_${model;}.%e' dir
Benennen Sie alle Dateien in Verzeichnis um, indem Sie den Kameramodellnamen zum Dateinamen hinzufügen. Das Semikolon nach dem Tag-Namen in geschweiften Klammern bewirkt, dass Zeichen, die in Windows-Dateinamen ungültig sind, aus dem Tag-Wert gelöscht werden (eine Erklärung finden Sie unter "Erweiterte Formatierungsfunktion").
Quelle: ExifTool-Dokumentation und diese Frage
Mit exiftool besteht die Antwort darin, ein benutzerdefiniertes Tag basierend auf EXIF:Model zu erstellen, das die anstößigen Zeichen herausfiltert. Diese Frage wird im ExifTool-Forum gestellt und beantwortet:
http://u88.n24.queensu.ca/exiftool/forum/index.php/topic,2961
Ich benutze jhead
dafür schon, bevor ich diese Funktion von ExifTool kannte, und was ich tue, ist einfach ein Wrapper-Skript zu verwenden
Das ist ein bisschen kludgy, aber hey, kludges sind das, wofür Shell-Skripte in erster Linie da sind, richtig? Und es hat den Vorteil, dass es mit anderen seltsamen Modellnamen wie der schrecklich beschrifteten "*ist" -Serie von Pentax zu tun hat. Und Sie verwenden bereits ein Batch-Skript. Setzen Sie einfach ein bisschen mehr Intelligenz in dieses Level.
Versuche dies:
exiftool '-FileName<${CreateDate}_${Exif:Model}.jpg' -d %Y%m%d_%H%M%S-%%2c *
oder dieses
exiftool '-FileName<${CreateDate}_${Exif:Model}_${filename}' -d %Y%m%d_%H%M%S *
Bisher ist die einzige Antwort, die mir eingefallen ist, hinzuzufügen
-overwrite_original_in_place -preserve "-Model=Samsung S860"
als erste ExifTool-Aktion, aber dies ändert offensichtlich die Datei selbst und nicht nur den Dateinamen.
Jari Keinänen
Exif:Model
in eine Textdatei aus (2) Durchlaufen Sie die Textdatei, indem Sie/
z . B. ersetzen-
(3.1) Durchlaufen Sie den Fotoordner erneut alphabetisch (3.2) Benennen Sie Dateien um entsprechend der geänderten Textdateimattdm