Top-Themen

Aktuelle Themen (A bis Z)

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit
GELÖST

Erstellungsdatum mit EXIF-Datum ersetzen

Frage Entwicklung Batch & Shell

Mitglied: JK87

JK87 (Level 1) - Jetzt verbinden

26.07.2009, aktualisiert 18.10.2012, 11263 Aufrufe, 8 Kommentare

Hallo,

habe mir ein paar Batch-Befehle zusammengestellt um meine Fotosammlung besser zu organisieren, greife dafür auch auf Jhead zurück.
Nun möchte ich noch das Erstellungsdatum der Fotos mit dem Bild-Aufnahmedatum aus dem EXIF-Header ersetzten.
Wie kann ich das Erstellungsdatum unter Windows beeinflussen bzw. weiß jemand von euch wie man mit/ohne Jhead das Aufnahmedatum auslesen und damit das Erstellungsdatum überschreiben kann?

Danke schon mal für eure Bemühungen.
JK


Falls notwendig hier der bisherige Code:
01.
echo     Alle im Ornder befindlichen JPG-Dateien werden umbenannt: 
02.
echo       20090708_140912_BEZEICHUNG.jpg 
03.
echo       EXIF-Datum_-Uhrzeit_BEZEICHUNG.jpg 
04.
echo. 
05.
for /f %%i in ('dir *.jpg ^2^>nul^|find "Datei(en)"') do set /a anz+=%%i 
06.
echo Es werden %Anz% JPG-Dateien berarbeitet. 
07.
echo. 
08.
:begin 
09.
set /P bezeichnung=Bitte geben Sie die Bezeichnung ein:  
10.
if "%bezeichnung%"=="" goto begin 
11.
echo. 
12.
echo     Fotos werden laut EXIF-Daten umbenannt: 
13.
jhead -nf%%Y%%m%%d-%%H%%M%%S "**\*.jpg" 
14.
echo     Fotos werden mit Bezichnungen versehen... 
15.
for /f  %%i in ('dir "*.jpg" /B^|findstr /V /I /B "%bezeichnung%"') do ren "%%~fi" "%%~ni_%bezeichnung%%%~xi" 
16.
echo. 
17.
echo     Fotos werden laut EXIF-Daten gedreht: 
18.
jhead -autorot "**\*.jpg" 
19.
echo. 
20.
echo     EXIF-Daten werden dem Aenderungsdatum zugewiesen: 
21.
jhead -exonly -ft "**\*.jpg"
Mitglied: bastla
26.07.2009, aktualisiert 18.10.2012
Hallo JK87!

Zum Thema "Aufnahmedatum auslesen" hatten wir mal diesen Thread ...
Das Ändern des Erstellungsdatums kannst Du entweder mit einem "touch"-Tool vornehmen oder auf die "harte" Tour: Systemdatum und Zeit jeweils passend setzen und Foto kopieren bzw das Systemdatum vor dem Rotieren ändern (dadurch dürfte ja auch eine neue Datei "erstellt" werden) ...

[Edit] Noch eine Anmerkung: In der Beschreibung von "Jhead" wird auch die Funktion "Re-name or date stamp files according to exif timestamp erwähnt ... [/Edit]

Grüße
bastla
Bitte warten ..
Mitglied: JK87
26.07.2009, aktualisiert 18.10.2012
Hallo bastla!

Erstmal Danke für deine schnelle Antwort.
Zum Thema "Aufnahmedatum auslesen" hatten wir mal
diesen Thread
Leider kann ich mit diesem Thread nicht wirklich etwas anfangen, müsste doch auch irgendwie mit Batch zu realisieren gehen.

Das Ändern des Erstellungsdatums kannst Du entweder mit einem
"touch"-Tool vornehmen oder auf die "harte" Tour
Da mein Tool automatisch funktionieren sollte, kommt wohl zum Ändern des Erstellungsdatums nur ein touch-Tool infrage. Fürchte nur das wird länger dauern bis ich das brauchbar mit Batch kombiniert habe.

[Edit] Noch eine Anmerkung: In der Beschreibung von "Jhead"
wird auch die Funktion "Re-name or date
stamp
files according to exif timestamp

erwähnt ... [/Edit]
Bei dieser Beschreibung ist meines Wissens das Verwenden des EXIF-Datum/Zeitstempel nur für den Dateinamen und nicht für das Erstellungsdatum gemeint - und in die Dateinamen lass ich es bereits reinkopieren.

Gruß
JK
Bitte warten ..
Mitglied: bastla
26.07.2009, aktualisiert 18.10.2012
Hallo JK87!
müsste doch auch irgendwie mit Batch zu realisieren gehen.
Ich würde das auch heute noch als Batch (wenn auch mit ein klein wenig VBScript garniert ) bezeichnen ...
Verwenden des EXIF-Datum/Zeitstempel nur für den Dateinamen und nicht für das Erstellungsdatum gemeint
Die hier beschriebene Option
-ft Sets the file's system time stamp to what is stored in the Exif header.
würde ich anders interpretieren (habe ich allerdings nicht getestet) ...

Grüße
bastla
Bitte warten ..
Mitglied: JK87
26.07.2009 um 22:31 Uhr
als Batch (wenn auch mit ein klein wenig VBScript garniert ) bezeichnen ...
Du hast ja eigentlich recht, vor allem wenn das VBScript auch schon fertig geschrieben ist
Habe deinen Code aus dem Thread einmal ausprobiert, aber leider werden die Bilder in einen Ordner namens "--DSC-T100" verschoben. Also bezeichnet der Index 25 das Kameramodell und nicht das Aufnahmedatum - sehr merkwürdig, weil überall diesem Index diese Funktion zugeschrieben wird, ich verwende WindowsXP.

-ft Sets the file's system time stamp to what is stored in the Exif header.
würde ich anders interpretieren (habe ich allerdings nicht getestet) ...
Das -ft beeinflusst leider nur das Änderungsdatum - habe ich auch in Verwendung.
01.
echo     EXIF-Daten werden dem Aenderungsdatum zugewiesen:  
02.
jhead -exonly -ft "**\*.jpg"
Bitte warten ..
Mitglied: bastla
26.07.2009 um 22:56 Uhr
Hallo JK87!
Das -ft beeinflusst leider nur das Änderungsdatum - habe ich auch in Verwendung.
Tja, dann eben tatsächlich ein "touch" oder das Kopieren (nur zur Sicherheit: das "Erstellungsdatum" wird beim erstmaligen Schreiben auf den Datenträger gesetzt) der Datei (nach Setzen von Datum/Uhrzeit auf den ausgelesen Wert) in eine Temporär-Datei und ein anschließendes "move" zurück, um die ursprüngliche Datei zu überschreiben.
Wieso willst Du eigentlich das Datum nicht über "jhead" auslesen? Mit
for /f "tokens=3-8 delims=: " %%a in ('jhead TEST.JPG^|findstr /b /c:"File date"') do echo %%c.%%b.%%a %%d:%%e:%%f
solltest Du ja alle Datums-/Zeitbestandteile erhalten und entsprechend weiter verarbeiten können ...

Grüße
bastla

P.S.: Das angesprochene VBScript liefert (unter XP bei mir) mit "25" das Ergebnis "Dateiname$Timestamp", wenn die Zeile 10 so geändert wird:
echo For Each F In Fld.Items:WScript.Echo F^&"%Delim%"^&Fld.GetDetailsOf(F,25):Next>>%G%
Die Ausgabe von "Dateiname" und "Timestamp" (getrennt durch "$", daher auch in der "for"-Schleife als "delim" verwendet) ist übrigens erforderlich, weil das VBScript nur ganze Ordner, nicht aber einzelne Dateien auslesen kann ...
Bitte warten ..
Mitglied: JK87
27.07.2009 um 15:50 Uhr
Hallo bastla!

Wieso willst Du eigentlich das Datum nicht über "jhead" auslesen?
An diese Variante habe ich noch gar nicht gedacht und die ist die Beste überhaupt, danke!

Jetzt muss ich das nur noch irgendwie in das Erstellungsdatum reinmachen. Glaube das Kopieren der Datei ist zu Zeitaufwendig bei 1000 Fotos mit je einem ~1MB, aber es wäre dann halt reines Batch und ich würde kein zusätzliches Tool mehr benötigen, mal schauen mit was ich es überhaupt zum Laufen bringe.

Bezüglich deinem VBScript muss ich mich entschuldigen, habs jetzt am Desktop-PC ausprobiert, funktioniert einwandfrei! Ich glaube es ist jetzt wirklich an der Zeit mein Notebook neu aufzusetzten
Bitte warten ..
Mitglied: JK87
28.07.2009 um 10:48 Uhr
Hallo bastla!

Hab es jetzt mit WinTouch realisiert, somit ist mein Batch-File fertig und es macht genau das was es machen soll.
Vielen Herzlichen Dank für deine Hilfe!

Der Vollständigkeit halber hier mein gesamtes Batch-File, vielleicht hilft es einmal jemanden:
01.
@echo off 
02.
echo. 
03.
echo   -------------------------------------------------------------- 
04.
echo      JPG-Archivist                                Build by JK 
05.
echo   -------------------------------------------------------------- 
06.
echo. 
07.
echo     Alle im Ornder befindlichen JPG-Dateien werden umbenannt: 
08.
echo       20090708_140912_BEZEICHUNG.jpg 
09.
echo       EXIF-Datum_-Uhrzeit_BEZEICHUNG.jpg 
10.
echo. 
11.
for /f %%i in ('dir *.jpg ^2^>nul^|find "Datei(en)"') do set /a anz+=%%i 
12.
echo Es werden %Anz% JPG-Dateien berarbeitet. 
13.
echo. 
14.
:begin 
15.
set /P bezeichnung=Bitte geben Sie die Bezeichnung ein:  
16.
if "%bezeichnung%"=="" goto begin 
17.
echo. 
18.
echo     Fotos werden laut EXIF-Daten umbenannt: 
19.
jhead -nf%%Y%%m%%d-%%H%%M%%S "**\*.jpg" 
20.
echo     Fotos werden mit Bezichnungen versehen... 
21.
for /f  %%i in ('dir "*.jpg" /B^|findstr /V /I /B "%bezeichnung%"') do ren "%%~fi" "%%~ni_%bezeichnung%%%~xi" 
22.
echo. 
23.
echo     Fotos werden laut EXIF-Daten gedreht: 
24.
jhead -autorot "**\*.jpg" 
25.
echo. 
26.
echo     Erstellungs-, Aenderungs- und Zugriffsdatum werden 
27.
echo     mit EXIF-Aufnahmedatum angepasst: 
28.
jhead -exonly -ft "**\*.jpg" 
29.
for /f "tokens=3-8 delims=: " %%i in ('jhead *.jpg^|findstr /b /c:"File name"') do ( 
30.
for /f "tokens=3-8 delims=: " %%a in ('jhead %%i^|findstr /b /c:"File date"') do wintouch -p %%i -t "%%c.%%b.%%a %%d:%%e:%%f" -s -a -m -c 
31.
32.
echo. 
33.
echo. 
34.
echo     Aenderungen durchgefuehrt! 
35.
echo. 
36.
echo. 
37.
pause
Bitte warten ..
Mitglied: MikeHunter
30.08.2010 um 20:29 Uhr
Danke JK.
Dein Skript hat mir heute wirklich aus der Patsche geholfen.

Ich habe es etwas modifiziert aber der Ansatz war Gold wert.

Gruß
Mike
Bitte warten ..
Ähnliche Inhalte
Batch & Shell
Datein nach Erstellungsdatum in Unterornder verschieben
gelöst Frage von xyxy-yxBatch & Shell20 Kommentare

Hallo, ich möchte alle Dateien nach Erstellungsdatum in datumbenannte Unterordner kopieren und eventuell diesen auch erstellen, wenn er nicht ...

Batch & Shell
Datei nach Erstellungsdatum verschieben
Frage von Kugelschreiber1Batch & Shell2 Kommentare

Hallo, ich möchte über eine Batch-Datei Dateien, die älter als 20 Tage sind, in einen anderen Ordner verschieben. Dabei ...

Batch & Shell
Erstellungsdatum vor jede Zeile einer Textdatei schreiben
gelöst Frage von freakonaleashBatch & Shell5 Kommentare

Hallo zusammen, ich habe einen Ordner mit ganz vielen Textdateien. Ich bräuchte eine Batch, die in jede Datei vor ...

Batch & Shell
Batch zum verschieben von Ordnern anhand des Erstellungsdatums
Frage von AcJokerBatch & Shell4 Kommentare

Hallo, ich würde gerne mittels Batch Ordner verschieben, und zwar in neue Ordner die dem Monat der Erstellung der ...

Neue Wissensbeiträge
Viren und Trojaner

Deaktivierter Keylogger in HP Notebooks entdeckt

Information von bitcoin vor 12 StundenViren und Trojaner1 Kommentar

Ein Grund mehr warum man Vorinstallationen der Hersteller immer blank bügeln sollte Der deaktivierte Keylogger findet sich im vorinstallierten ...

Router & Routing

Lets Encrypt kommt auf die FritzBox

Information von bitcoin vor 16 StundenRouter & Routing

In der neuesten Labor-Version der FB7490 integriert AVM unter anderem einen Let's Encrypt Client für Zugriffe auf das Webinterface ...

Internet

Was nützt HTTPS, wenn es auch von Phishing Web-Seiten genutzt wird

Information von Penny.Cilin vor 3 TagenInternet17 Kommentare

HTTPS richtig einschätzen Ob man eine Webseite via HTTPS aufruft, zeigt ein Schloss neben der Adresse im Webbrowser an. ...

Webbrowser

Bugfix für Firefox Quantum released - Installation erfolgt teilweise nicht automatisch!

Erfahrungsbericht von Volchy vor 4 TagenWebbrowser8 Kommentare

Hallo zusammen, gem. dem Artike von heise online wurde mit VersionFirefox 57.0.1 sicherheitsrelevante Bugs behoben. Entgegen der aktuellen Veröffentlichung ...

Heiß diskutierte Inhalte
Batch & Shell
Trusted Sites für alle User auf dem PC einpflegen
Frage von xXTaKuZaXxBatch & Shell12 Kommentare

Aufgabestellung: Es sollen auf 1 PC (bzw. mehreren PCs) vertrauenswürdige Sites per Powershell eingetragen werden, die für alle User ...

Voice over IP
Telefonstörung - Ortsrufnummern kein Verbindungsaufbau
Frage von Windows10GegnerVoice over IP10 Kommentare

Hallo, sowohl bei uns als auch beim Opa ist es über VoIP nicht möglich Ortsrufnummern anzurufen. Es kommt nach ...

Vmware
DOS 6.22 in VMWare mit CD-ROM
gelöst Frage von hesperVmware10 Kommentare

Hallo zusammen! Ich hab ein saublödes Problem. Es ist eine VMWare mit DOS 6.22 zu erstellen auf dem ein ...

Cloud-Dienste
PIM als SaaS Nutzungsgebühr
Frage von vanTastCloud-Dienste8 Kommentare

Moin, wir haben uns ein PIM (Product Information Management) nach unseren Ansprüchen für viel Geld als SaaS-Lösung bauen lassen. ...