Fotos verschieben und umbenennen
Hallo,
Ich möchte gerne ein Verzeichnis durchsuchen f:/DCIM/PANORAMA dort sind Verzeichnisse nach folgender Nummerierung 100_1234
In jedem Ordner befinden sich die Fotos PANO0001.DNG bis PANO0026.DNG.
Ich möchte mit exiftool die Datum und Zeit umbenennen also z.B. P_200715153901_Muenster.DNG. Der Ordner soll dann P_2007153901_Muenster heissen.
Der Ordnername soll Datum und Zeit vom ersten Foto enthalten. Bei den Fotos überlege ich noch ob sie Ihr eigenes Datum und Uhrzeit als Name haben sollen, oder ob sie auch Alle die selbe Zeit haben sollen und dann von 01 bis 26 durchnummeriert werden sollen.
Bei meinem Versuch werden erst die Ordner gesucht und in eine Datei (DIR.list) geschrieben.
Alle Daten zu sammeln ist auch kein Problem (DNG.files) hinterher durchsuche ich die Ordner und möchte das erste Datum (DNG.OrdnerZeit) ermitteln. Dies macht aber die Probleme (PAN_TimeStamp).
Das ermitteln der Zeit klappt. Auch das Schreiben in die Datei (DNG.OrdnerZeit) klappt einwandfrei. Aber wenn ich sie einer variablen zuweise wird immer das letzte Datum vom letzten Durchlauf der Batch Datei genommen.
Habe gestern den ganzen Abend versucht mit Google und etlichen Versuchen das irgendwie zum laufen zu bekommen.
Ich bekomme die Zeit hier nicht in die Variable PAN-TimeStamp um sie weiter zu verarbeiten.
ZEIT0 ist richtig
ZEIT1 und ZEIT3 sind der letzte Wert vom letzten Durchlauf
Hoffe mir kann jemand den entscheidenden Hinweis geben....
hier mal die Batch:
und hier die Ausgabe nach dem zweiten Durchlauf:
Ich möchte gerne ein Verzeichnis durchsuchen f:/DCIM/PANORAMA dort sind Verzeichnisse nach folgender Nummerierung 100_1234
In jedem Ordner befinden sich die Fotos PANO0001.DNG bis PANO0026.DNG.
Ich möchte mit exiftool die Datum und Zeit umbenennen also z.B. P_200715153901_Muenster.DNG. Der Ordner soll dann P_2007153901_Muenster heissen.
Der Ordnername soll Datum und Zeit vom ersten Foto enthalten. Bei den Fotos überlege ich noch ob sie Ihr eigenes Datum und Uhrzeit als Name haben sollen, oder ob sie auch Alle die selbe Zeit haben sollen und dann von 01 bis 26 durchnummeriert werden sollen.
Bei meinem Versuch werden erst die Ordner gesucht und in eine Datei (DIR.list) geschrieben.
Alle Daten zu sammeln ist auch kein Problem (DNG.files) hinterher durchsuche ich die Ordner und möchte das erste Datum (DNG.OrdnerZeit) ermitteln. Dies macht aber die Probleme (PAN_TimeStamp).
Das ermitteln der Zeit klappt. Auch das Schreiben in die Datei (DNG.OrdnerZeit) klappt einwandfrei. Aber wenn ich sie einer variablen zuweise wird immer das letzte Datum vom letzten Durchlauf der Batch Datei genommen.
Habe gestern den ganzen Abend versucht mit Google und etlichen Versuchen das irgendwie zum laufen zu bekommen.
Ich bekomme die Zeit hier nicht in die Variable PAN-TimeStamp um sie weiter zu verarbeiten.
ZEIT0 ist richtig
ZEIT1 und ZEIT3 sind der letzte Wert vom letzten Durchlauf
Hoffe mir kann jemand den entscheidenden Hinweis geben....
hier mal die Batch:
cls
@echo off
del DNG.files
del DIR.list
del DNG.OrdnerZeit
set PAN_BaseDir=d:/cloud/Panorama
set RAW_Remark=Muenster
dir /a:d /b f:\DCIM\PANORAMA\100_023?. > DIR.list
type DIR.list
for /f "tokens=*" %%A in ('dir /b /s /a:d "F:\DCIM\PANORAMA\1??_023?."') do (
echo.
echo.
echo Found %%A
d:/exiftool/exiftool.exe -T -d "%%y%%m%%d%%H%%M%%S" -DateTimeOriginal -SubSecTimeOriginal -FileName %%A\PANO002?.dng > DNG.files
d:/exiftool/exiftool.exe -T -d "%%y%%m%%d%%H%%M%%S" -DateTimeOriginal %%A\PANO0001.dng > DNG.OrdnerZeit
rem -------------------------------------------------------------------------------
rem set /p tmpZeile=<"D:\exiftool\DNG.OrdnerZeit"
rem echo Files:
type DNG.files
echo Zeit:
rem Setlocal EnableDelayedExpansion
type DNG.OrdnerZeit
for /f "delims=" %%C in (DNG.OrdnerZeit) do (
rem Setlocal EnableDelayedExpansion
echo DNG ZEIT0: %%C
set PAN_TimeStamp=%%C
echo DNG ZEIT1: %PAN_TimeStamp%
)
rem set PAN_TimeStamp=<"DNG.OrdnerZeit"
echo DNG ZEIT2: %%C
echo DNG ZEIT3: %PAN_TimeStamp%
echo.
echo Panorama RAW files:
rem d:/exiftool/exiftool.exe -T -d "%%y%%m%%d%%H%%M%%S" -DateTimeOriginal %%A\PANO0001.DNG > DNG.time
rem for /f %%B in ('type DNG.time') do set PAN_TimeStamp=%%B
rem Echo neues Datum %%A ist %PAN_TimeStamp%
for /f "tokens=1,2,3,4 delims= " %%I in (DNG.files) do (
if %%J EQU - set tfn=%%I
if %%J NEQ - set tfn=%%I_%%J
set tfn2=%%K
echo %PAN_BaseDir%/P_%PAN_TimeStamp%_%RAW_Remark%/P_%%I.DNG %%K
)
pause 1
)
del DNG.files
del DIR.list
del DNG.OrdnerZeit
d:
und hier die Ausgabe nach dem zweiten Durchlauf:
D:\exiftool\DNG.files konnte nicht gefunden werden
D:\exiftool\DIR.list konnte nicht gefunden werden
D:\exiftool\DNG.OrdnerZeit konnte nicht gefunden werden
100_0230
100_0231
Found F:\DCIM\PANORAMA\100_0230
200712154710 - PANO0020.DNG
200712154712 - PANO0021.DNG
200712154714 - PANO0022.DNG
200712154716 - PANO0023.DNG
200712154719 - PANO0024.DNG
200712154721 - PANO0025.DNG
200712154723 - PANO0026.DNG
Zeit:
200712154629
DNG ZEIT0: 200712154629
DNG ZEIT1: 200712154802
DNG ZEIT2: %C
DNG ZEIT3: 200712154802
Panorama RAW files:
d:/cloud/Panorama/P_200712154802_Muenster /P_200712154710.DNG PANO0020.DNG
d:/cloud/Panorama/P_200712154802_Muenster /P_200712154712.DNG PANO0021.DNG
d:/cloud/Panorama/P_200712154802_Muenster /P_200712154714.DNG PANO0022.DNG
d:/cloud/Panorama/P_200712154802_Muenster /P_200712154716.DNG PANO0023.DNG
d:/cloud/Panorama/P_200712154802_Muenster /P_200712154719.DNG PANO0024.DNG
d:/cloud/Panorama/P_200712154802_Muenster /P_200712154721.DNG PANO0025.DNG
d:/cloud/Panorama/P_200712154802_Muenster /P_200712154723.DNG PANO0026.DNG
Drücken Sie eine beliebige Taste . . .
Found F:\DCIM\PANORAMA\100_0231
200712154842 - PANO0020.DNG
200712154844 - PANO0021.DNG
200712154846 - PANO0022.DNG
200712154848 - PANO0023.DNG
200712154851 - PANO0024.DNG
200712154853 - PANO0025.DNG
200712154855 - PANO0026.DNG
Zeit:
200712154802
DNG ZEIT0: 200712154802
DNG ZEIT1: 200712154802
DNG ZEIT2: %C
DNG ZEIT3: 200712154802
Panorama RAW files:
d:/cloud/Panorama/P_200712154802_Muenster /P_200712154842.DNG PANO0020.DNG
d:/cloud/Panorama/P_200712154802_Muenster /P_200712154844.DNG PANO0021.DNG
d:/cloud/Panorama/P_200712154802_Muenster /P_200712154846.DNG PANO0022.DNG
d:/cloud/Panorama/P_200712154802_Muenster /P_200712154848.DNG PANO0023.DNG
d:/cloud/Panorama/P_200712154802_Muenster /P_200712154851.DNG PANO0024.DNG
d:/cloud/Panorama/P_200712154802_Muenster /P_200712154853.DNG PANO0025.DNG
d:/cloud/Panorama/P_200712154802_Muenster /P_200712154855.DNG PANO0026.DNG
Drücken Sie eine beliebige Taste . . .
D:\exiftool>
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 587835
Url: https://administrator.de/forum/fotos-verschieben-und-umbenennen-587835.html
Ausgedruckt am: 04.04.2025 um 05:04 Uhr
3 Kommentare
Neuester Kommentar
Moin,
Stichwort Variablenverzögerung.
Wenn du eine Variable innerhalb einer Befehlsgruppierung (in deinem Fall die For-Schleife) setzt; und diese Variable innerhalb der selben Gruppierung wieder aufrufen willst, musst du die Variable verzögern, sonst gibt sie dir den Wert aus, den sie vor der Gruppierung hatte.
daher:
an den Anfang deines Skripts; und dann die Variable PAN-TimeStamp in Ausrufezeichen statt Prozentzeichen aufrufen, also z.B.
Gruß Thomas
PS: Mit Powershell wird das Leben leichter.
Stichwort Variablenverzögerung.
Wenn du eine Variable innerhalb einer Befehlsgruppierung (in deinem Fall die For-Schleife) setzt; und diese Variable innerhalb der selben Gruppierung wieder aufrufen willst, musst du die Variable verzögern, sonst gibt sie dir den Wert aus, den sie vor der Gruppierung hatte.
daher:
setlocal EnableDelayedExpansion
echo !PAN-TimeStamp!
Gruß Thomas
PS: Mit Powershell wird das Leben leichter.
Ohja, das solltest Du. Damit lassen sich solche Probleme viel eleganter lösen.
Sollte bei Windows 10 ja wohl inzwischen standardmäßig dabei sein, oder?
Seit Server 2008 und Windows 7. Wenn ich mich recht erinnere, wurde XP mit dem SP3 nachgerüstet. Da kann ich mich aber auch täuschen und es musste händisch nachinstalliert werden.