• Neuer Gutscheincode unseres Partners Schutzfolien24:
    DSLR-Forum2025
    Dauerhaft 10% Rabatt auf alle Displayschutzfolien und Schutzgläser der Eigenmarken
    "Upscreen", "Screenleaf", BROTECT" und "Savvies".
    Der Code ist für alle Geräteklassen gültig.
  • In eigener Sache!

    Liebe Mitglieder, liebe Besucher und Gäste
    ich weiß, es ist ein leidiges Thema, aber ich muss es ansprechen: Werbung, Werbeblocker und Finanzierung des Forums.
    Bitte hier weiterlesen ...

  • Nicht erreichbare Adressen im Benutzerkonto
    Wir bekommen zurzeit eine große Anzahl an E-Mails, die das System zum Beispiel als Benachrichtigungen an Nutzer verschickt,
    als unzustellbar zurück, weil z.B. die Adressen nicht erreichbar sind oder das Postfach gar nicht existiert.
    Stellt doch bitte sicher, dass die Benachrichtigungen, die ihr vom System erwartet, auch zugestellt werden können.
    Nicht erreichbare E-Mail-Adressen sind dazu wenig hilfreich.
    Danke!
WERBUNG

Exif "Lenstype" zum Dateiumbenennen verwenden

Dato

Themenersteller
Hallo Gemeinde,

es gibt Situationen in denen ich meine Bilddateien in "Mit welchen Einstellungen ist's gemacht".JPG umbenennen möchte.

ACDSee, Infranview, XnViewer und alle Exif-(Freeware)Renamer die ich gefunden habe, beherschen das Umbenennen mit den Exif-Infos für Blende, Zeit, ISO etc. um z.B. solche Dateinamen zu erzeugen: "f5.6 1-100sek ISO100 50mm.jpg".

Da sich meine Objektive (EFS10-22, EF50, Tamron 17-55) in den Brennweiten überschneiden, würde ich gern das Exif-Info "Lenstype" mit in den Dateinamen setzen, also so "f5.6 1-100sek ISO100 50mm EF50-1.8.jpg" oder so ähnlich. Der Objektiv-Typ wird definitiv im JPG gespeichert, DPP liest es aus.

Kennt jemand ein Programm oder Script was so etwas ermöglicht? :confused:

@Mod: Falls die Frage hier im 'Canon - Allgemein' falsch ist, dann bitte verschieben - Danke.
 
Fuer Irfanview, probiere mal folgende Tokens aus ... $E37386 ... $E25 ... eines der beiden sollte u.U. einen String wie z.B. "24-105" liefern.
 
Vielleicht kommst Du auch mit XnView zum Ziel, siehe z.B. https://www.dslr-forum.de/showthread.php?p=6551932#post6551932. Ich weiß aber nicht, ob dort das gewünschte "Lenstype" als EXIF-Tag unterstützt wird.

Exiftool funktioniert bei anderen Tags prima, hat hier aber einen Pferdefuß: bei Bezeichungen wie "EF35-80mm f/4-5.6 USM" macht einem der Schrägstrich (Slash) im Objektiv-Namen das Leben schwer. Beim Umbenennen würde exiftool nämlich in diesem Fall ein (Unter-)Verzeichnis "EF35-80mm f" anlegen und dort die Datei als "4-5.6 USM" speichern... :ugly:

Gruß, Graukater

[EDIT] Habe erst jetzt nochmal gesehen, dass Du XnView offenbar schon ohne Erfolg probiert hattet. :(
 
Zuletzt bearbeitet:
Es lohnt sich, sich mit den Möglichkeiten von ExifTool zu beschäftigen. Zwei kurze Snippets aus meiner Skript-Sammlung, die Anwendung erfolgt jeweils auf CR2- und JPG-Dateien:

Hier wird der Objektivtyp in den Exif-Benutzerkommentar geschrieben, aber nur, wenn dieser noch leer ist. Vorteil: Der Benutzerkommentar kann von jedem noch so dämlichen Exif-Programm gelesen werden, die Canon-Makernotes meistens nicht ...
Code:
"%EXIFTOOL%\exiftool.exe" "-LensModel>UserComment" -if "not $UserComment" -overwrite_original -ext .cr2 -ext .jpg *

Hier wird das Dateidatum auf das Aufnahmedatum gesetzt und nebenbei der Software-Eintrag gelöscht, den beispielsweise DPP oder Adobe gerne füllt, wenn sie die Datei einmal in ihren Krallen hatten:
Code:
"%EXIFTOOL%\exiftool.exe" "-Software=" "-DateTimeOriginal>FileModifyDate" -overwrite_original -ext .cr2 -ext .jpg *

Die Variable
Code:
"%EXIFTOOL%
stellt dabei den Pfad zur ausführbaren Datei dar und kann in deinen persönlichen oder den globalen Windows-Umgebungsvariablen gesetzt werden. Man kann die Variable natürlich auch gegen eine "feste Verdrahtung" austauschen.

Grüße
Peter
 
Zum Umbenennen ist der Total Commander bestens geeignet: Hier gibt es das Multi-Rename Tool mit allen erdenklichen Funktionen. Dazu das Exif-Plug-In installieren und schon sind alle Optionen möglich.

Nicht alle. An den "LensType" oder besser: an den "LensModel" kommst du damit nämlich immer noch nicht ran. Obwohl das Plugin mächtig zugelegt hat, die Vorgängerversion konnte gefühlt nur ca. die Hälfte der Daten auslesen.

Davon mal ab ist der TC natürlich immer eine Empfehlung wert. Wie man sich ohne dieses Tool überhaupt auf einem Rechner zurechtfinden soll, ist mir schon seit Jahren ein Rätsel. :)

Grüße
Peter
 
Würdest Du mir Dein Batch zur Verfügung stellen?

Hi,

ich muss einschränken das ich es nicht zum umbennen benutze sondern nur um
das Kommentarfeld zu füllen welches Windows (XP - Win7) bei der Dateiinfo anzeigt.

Dies sieht dann bei einer Datei dann so aus:
Blende=F/3.2 Belichtungszeit=1/1250 ISO=100 Brennweite=35.0 mm Objektiv=EF35mm f/2 Body=Canon EOS 550D

Ist eigentlich simpel:

ic4win.cmd
-----schnipp-------
@echo off
exiftool.exe -m -overwrite_original_in_place "-XPComment<Blende=F/$exif:FNumber Belichtungszeit=$exif:ExposureTime ISO=$exif:iso Brennweite=$exif:FocalLength Objektiv=$Canon:LensModel Body=$exif:Model" %1

-----schnapp-------

Das muss nur mehr für jedes gewünschte File ausgeführt werden (dauert ~1 Sekunde pro File)

Das mach ich damit:

insert_batch.cmd
(als parameter das gewünschte Verzeichnis, alle JPG's darin werden bearbeitet)

-----schnipp-------
@echo off
for /f %%i in ('dir /b %1\*.jpg') do (
@echo Berbeite %%i
@call ic4win.cmd %1\%%i
)

-----schnapp-------

Beide CMD's ins selbe Verzeichnis speichern und ab gehts.
Ich war halt etwas unkreativ, daher hab ich mal in der Nacht das schnell zusammengeklopft.....erfüllt, wenn auch unelegant, seinen Zweck.

lG Rainer

[EDIT]
exiftool muss auch im selben Verzeichnis liegen wie die CMD's
[/EDIT]
 
Umbenennen mit dem exiftool funktioniert beispielsweise so:

exiftool.exe "-filename<%f ${lens}.%e" test.jpg
für eine einzelne Datei. Dabei wird der Dateiname um ein Leerzeichen und das "Lens"-Tag ergänzt, beispielsweise würde aus "test.jpg" so "test 35.0 - 80.0 mm.jpg". Das geht auch für ganze Verzeichnisse in einem Rutsch:

exiftool.exe "-filename<%f ${lens}.%e" dir (für das Unterverzeichnis "dir")
exiftool.exe "-filename<%f ${lens}.%e" . (für das aktuelle Verzeichnis = ".")

Ich habe hier bewusst das Lens-Tag gewählt. Falls man die vorhandenen Objektive nur anhand des Brennweitenbereiches eindeutig unterscheiden kann, sollte das schon ausreichen. Alternativ könnte man den Wert "LensID" verwenden, das macht aber - wie weiter oben schon beschrieben - Probleme, falls dadurch Schrägstriche ("f/...") im Dateinamen auftauchen. In jedem Fall zunächst in einem Test-Verzeichnis nur mit einer Kopie der Bilddateien ausprobieren, bevor man exiftool auf diese Weise auf wichtige Bilder loslässt...

Gruß, Graukater
 
Für die Bash:
Code:
for i in *; do echo cp $i \'`echo $i | awk -F. '{print $1}'`_`exiftool -LensID $i | awk -F: '{print $2}' | sed "s#/#_#g"`.`echo $i | awk -F. '{print $2}'`\'|sh;done
Näckischer kleiner Einzeiler, der sich auch um die Schrägstriche kümmert und die Leerzeichen als solche belässt. Lässt sich sicher noch optimieren, aber er funktioniert erstmal. mv statt cp benennt um statt zu kopieren. Weitere Tags lassen sich logischerweise anhängen, also Brennweite oder Belichtungszeit, aber das wird dem geneigten Leser als Übungsaufgabe überlassen. :lol:
 
Servus

Ist zwar nicht kostenlos, macht aber auch das alles: Photo Mechanic, einmal etwas Geld investiert und auf ewige Zeiten zufrieden ... :cool:
 
Wow! was ne Kompetenz hier :top:

Ich hatte mir schon irgendwie gedacht, dass Exiftool da was kann. Aber die Parameter und passende Scripts muss man ja erst mal verinnerlichen und ausprobieren. Ich werde das mal ausprobieren.

Schon mal vielen Dank für die Infos und Ansätze.
 
also wenn es nur darum geht, dass der "/" beim Dateinamen stoert, dann sollte es in einem Batchscript ein leichtes sein diesen durch ein anderes Zeichen zu ersetzen. Ich habe mir einen aufwaendigen Batch-Script geschrieben, mit dem ich die genaue Objektiv-Information meiner JPGs mittels Exiftool in ein Exif-Feld schreibe das auch von Adobe-Produkten und meinem Foto-Webalbumgenerator ausgelesen werden kann (wem's interessiert: ich verwende das Exif-Feld "Lens", Tag ID 0xfdea). Hier ein paar Schnipsel daraus...
Code:
exiftool -T -FileName -Make -Model -LensID -LensModel %1\*.jpg > %temp%\exif_values.txt
obiger Befehl schreibt die von mir gewuenschten Eingeschaften aller JPGs aus dem Verzeichnis, das ich mit %1 uebergebe, (Tab-getrennt) in eine Textdatei "exif_values.txt".
Code:
setlocal EnableDelayedExpansion
for /f "tokens=1-5 delims=	" %%i in (%temp%\exif_values.txt) do (
 set filename=%%i&set make=%%j&set model=%%k&set LensID=%%l&set LensModel=%%m
 rem weitere Befehle die in der Schleife laufen sollen
 rem weitere Befehle die in der Schleife laufen sollen
)
endlocal
mit diesem Teil des Scripts lese in einem Loop die mit dem vorigen Befehl erstellte Text-Datei zeilenweise Tab-getrennt ein und schreibe die einzelnen Werte in Variablen, die ich dann pro JPG zum Manipulieren verwenden kann... wenn ich eine Variable davon als Teil eines Dateinamens verwenden will (also z.B. der "/" stoert), dann ersetze ich dieses Zeichen durch ein anderes, z.B. so (4. Zeile!):
Code:
setlocal EnableDelayedExpansion
for /f "tokens=1-5 delims=	" %%i in (%temp%\exif_values.txt) do (
 set filename=%%i&set make=%%j&set model=%%k&set LensID=%%l&set LensModel=%%m
 set LensID=!LensID:/=!
 rem weitere Befehle die in der Schleife laufen sollen
 rem weitere Befehle die in der Schleife laufen sollen
)
endlocal
voriger Code loescht das "/" aus dem Inhalt der Variable "LensID" (aus "EF35-80mm f/4-5.6 USM" wird "EF35-80mm f4-5.6 USM") oder
Code:
setlocal EnableDelayedExpansion
for /f "tokens=1-5 delims=	" %%i in (%temp%\exif_values.txt) do (
 set filename=%%i&set make=%%j&set model=%%k&set LensID=%%l&set LensModel=%%m
 set LensID=!LensID:/=_!
 rem weitere Befehle die in der Schleife laufen sollen
 rem weitere Befehle die in der Schleife laufen sollen
)
endlocal
voriger Code ersetzt das "/" aus dem Inhalt der Variable "LensID" durch ein "_" (aus "EF35-80mm f/4-5.6 USM" wird "EF35-80mm f_4-5.6 USM")

lG
Gerald
 
Zuletzt bearbeitet:
Letztlich kann man es drehen und wenden, wie man will - aber die Schrägstriche erschweren die Sache halt einfach.

Ich hätte noch folgende Alternative anzubieten:

Man sortiert alle Bilder erst einmal - abhängig vom eingesetzten Objektiv - in eigene Unterordner (1 Ordner pro Objektiv). Das geht z.B. mit

exiftool "-directory<${lensid}" .

für alle Dateien im aktuellen Verzeichnis. Falls dabei "/"-Zeichen auftauchen und so zusätzliche Unterverzeichnisse entstehen, ist das nicht weiter schlimm - entscheidend ist allein, dass hinterher alle mit einem bestimmten Objektiv gemachten Bilder in einem Ordner gelandet sind (den man dann ggf. auch passend umbenennen/verschieben kann).

Wer möchte, kann (dort!) die Dateien dann auch leicht in einem Rutsch entsprechend kennzeichnen, z.B. im Feld für den Benutzer-Kommentar
exiftool -usercomment="Canon EF 35-80mm f4-5.6 USM" .
und diese (dann 'ungefährliche') Angabe hinterher auch für die weitere Verarbeitung oder ein erneutes Umbenennen verwenden...

Gruß, Graukater
 
WERBUNG
Zurück
Oben Unten