So, meine Batch ist fertig und funktioniert bei mir. Da sie vielleicht auch jemand anderem nutzen kann, stelle ich sie hier rein. Bedenkt, dass ich kein Programmierer bin. Ich glaube nicht, dass Schaden entstehen kann, aber ich kann es auch nicht ausschließen. Den unten stehenden Text der Batch kann jeder lesen. Verwenden sollte sie nur, wer weiß, was er tut.
Fehler/Korrekturen bitte mitteilen, damit ich den Text hier anpassen kann.
Die Funktion ist m.E. für Leute, die den Text der cmd lesen, selbsterklärend.
Was man braucht:
- Man braucht die Batch, eine Datei mit zusätzlichen Argumenten (enthält die zu übernehmenden Felder), und exiftool.exe.
"Installation":
Die cmd irgendwo hin legen, in der dritten Zeile den Pfad zu exiftool.exe eintragen.
Die SE-Args.txt muss in das Verzeichnis kopiert werden, in dem auch exiftool.exe liegt.
Vorgehen:
Man zieht einen Ordner mit JPGs auf die cmd oder startet sie auf der Kommandozeile und gibt das Verzeichnis als Parameter an. Die Batch macht ein paar kleine Prüfungen, dann erstellt sie einen Unterordner "export" im JPG-Ordner, kopiert die Dateien dort hinein, lässt exiftool alle Metadaten entfernen und anschließend die gewünschten von den Original-Dateien wieder übernehmen,
Liegen schon JPGs im Unterordner "export", so kopiert die Batch die JPGs nicht dorthin. So kann man auch aus einem Ordner mit mehreren hundert Dateien nur einige wenige von Hand selektierte zum "strippen" auswählen und manuellk in das Unterverzeichnis kopieren. Wichtig ist nur, dass die Dateien exakt den selben Namen haben wie die, von denen die Metadaten übernommen werden sollen.
Strip-Exifs.cmd
Code:
@echo off
rem !!! --== HIER Pfad zu Exiftool.exe eintragen ==--
set ExifToolPath=p:\EBB\ExifTool\
rem ==============================================
rem = strip-exifs.cmd / V 1.00
rem = Entfernen aller unerwuenschten Meta-Informationen aus JPG-Dateien per Batch
rem = Benoetigt exiftools.exe und eine selbst zu erstellende Parameter-Datei, die
rem = im Verzeichnis der exiftools.exe liegen und den Namen "SE-Args.txt" tragen muss.
rem = In SE-Args.txt muss PRO ZEILE ein zu erhaltender EXIF-Parameter stehen, zB:
rem = -EXIF:ShutterSpeedValue
rem = -EXIF:ApertureValue
rem = -EXIF:GPSLatitude
rem = -EXIF:GPSLongitude
rem = -EXIF:GPSAltitude
rem = Syntax und Namen der Felder bitte der Dokumentation des Exiftools entnehmen.
rem =
rem = Es kann entweder ein Ordner auf diese Batch gezogen werden, oder der Ordner
rem = auf der Kommandzeile als Parameter uebergeben. Je nach Name muss der Pfad
rem = in Doppelhochkomma " gesetzt werden.
rem =
rem = Ich habe diese Batch nur rudimentaer getestet. Jeder kann die Zeilen lesen und eventuelle
rem = Fehler korrigieren. In einem solchen Fall freue ich mich ueber einen Hinweis. Fuer die
rem = Funktion dieser Batch, insbesondere eventuell durch sie entstandenen Schaden, kann ich
rem = keine Verantwortung uebernehmen.
rem = Obwohl ich diese Zeilen nach bestem Wissen und mit guten Absichten geschrieben habe, sind
rem = Fehler nicht auszuschliessen. Daher sollte diese Batch nur von Menschen verwendet werden,
rem = die wissen, was sie tun und die zuvor ein Backup erstellt haben.
rem =
if %1.==. goto NoParm
if not exist %ExifToolPath%\exiftool.exe goto NoExifTool
if not exist %ExifToolPath%\SE-Args.txt goto NoArgFile
if not exist %1 goto NoSuchDir
if not exist "%~1\*.jpg" goto NoJPGFiles
set TgtDir=%~1\export
if not exist "%TgtDir%" md "%TgtDir%" >nul
if not exist "%TgtDir%" goto TgtNoCreate
set NoCopy=no
if exist "%TgtDir%\*.jpg" set NoCopy=yes
if %NoCopy%==yes echo Es sind bereits JPG-Dateien im Export-Verzeichnis ("%TgtDir%"), keine weiteren Dateien werden kopiert.
if %NoCopy%==yes goto TgtFileExists
rem Keine Pruefung, ob freier Platz ausreicht.
rem Unterverzeichnisse werden nicht abgearbeitet.
copy "%~1\*.jpg" "%TgtDir%\"
if errorlevel 1 goto CopyError
:TgtFileExists
rem Im Exportverzeichnis alle Metadaten entfernen
%ExifToolPath%\exiftool.exe -overwrite_original -All= "%TgtDir%\*.jpg"
rem Meta-Informationen von Dateien im Quellverzeichnis kopieren.
rem Anmerkung: Windows "erkennt" leider alle Dateien, deren Endung lediglich mit ".jpg" BEGINNT
rem als Treffer, also auch ".jpg_original" usw.
for %%I in ("%TgtDir%\*.jpg") do @ echo ----- %%I: && %ExifToolPath%\exiftool.exe -overwrite_original -tagsfromfile "%~1\%%~nI%%~xI" -@ SE-Args.txt "%%I"
echo Fertig.
goto EndIt
:NoExifTool
echo Exiftool.exe nicht gefunden, bitte in dritter Zeile der Batch-Datei eintragen. Pfadangabe muss mit \ enden.
goto EndIt
:NoArgFile
echo Im Verzeichnis der Exiftool.exe (%ExifToolPath%) befindet sich nicht die Textdatei mit den zu erhaltenden Meta-Informationen. Datei fehlt: %ExifToolPath%\PE-Args.txt
goto EndIt
:NoParm
echo Parameter fehlt: Name des Verzeichnisses, in dem sich die Bilddateien befinden.
goto EndIt
:NoSuchDir
echo Das angegebene Verzeichnis (%1) existert nicht.
goto EndIt
:NoJPGFiles
echo In dem angegebenen Verzeichnis (%1) befinden sich keine JPG-Dateien.
goto EndIt
:TgtNoCreate
echo Das Export-Verzeichnis "%TgtDir%" konnte nicht angelegt werden.
goto EndIt
:CopyError
echo Fehler beim Kopieren der Dateien.
rem Aufraeumen:
del "%TgtDir%\*.jpg"
rd "%TgtDir%"
goto EndIt
:EndIt
set ExifToolPath=
set TgtDir=
set NoCopy=
pause
SE-Args.txt
Code:
-EXIF:ModifyDate
-EXIF:ExposureTime
-EXIF:FNumber
-EXIF:ISO
-EXIF:DateTimeOriginal
-EXIF:CreateDate
-EXIF:ShutterSpeedValue
-EXIF:ApertureValue
-EXIF:FocalLength
-EXIF:GPSVersionID
-EXIF:GPSLatitudeRef
-EXIF:GPSLatitude
-EXIF:GPSLongitudeRef
-EXIF:GPSLongitude
-EXIF:GPSAltitudeRef
-EXIF:GPSAltitude
-EXIF:GPSTimeStamp
-EXIF:GPSSatellites
-EXIF:GPSMapDatum
-EXIF:GPSDateStamp
#-XMP:CountryCode
#-XMP:Location
#-XMP:City
#-XMP:Country
#-XMP:State
#-XMP:DateTimeDigitized
#-XMP:DateTimeOriginal
#-XMP:GPSAltitude
#-XMP:GPSAltitudeRef
#-XMP:GPSLatitude
#-XMP:GPSLongitude
#-XMP:GPSDateTime
#-XMP:CreateDate
#-XMP:ModifyDate