Dateien nach Datei-Eigenschaften umbenennen via Batch
Guten Tag liebe leute,
also im vorraus: "Ich bin ein Anfänger"
Ich versuche mir eine batch datei zu schreiben, welche mir bilder umbenennt.
Aus "name.jpg" soll "erstellungsdatum.name.jpg" werden
Hierbei ist mir wichtig dass ALLE bilder auf einmal in dem ordner (c:\bilder\) umbenannt werden.
Bis jetzt bin ich soweit gekommen, dass mir alle dateinamen und das datum angezeigt wird, das problem ist das umbenennen.
Code:
@echo off & setlocal EnableDelayedExpansion
for /f "delims=" %%i in ('dir /b') do (
echo %%~i
echo %%~ti
echo.)
wobei ich mir dieses " "delims=" " noch nicht so richtig erklären kann, aber ohne funktioniert es nicht...
Mein bisheriger ansatz war:
Code:
ren "%%~i" "%%~ti.%%~"i
funktioniert aber nicht :-P
Ich danke euch schonmal im vorraus
Mit freundlichen Grüßen
Exoroth
also im vorraus: "Ich bin ein Anfänger"
Ich versuche mir eine batch datei zu schreiben, welche mir bilder umbenennt.
Aus "name.jpg" soll "erstellungsdatum.name.jpg" werden
Hierbei ist mir wichtig dass ALLE bilder auf einmal in dem ordner (c:\bilder\) umbenannt werden.
Bis jetzt bin ich soweit gekommen, dass mir alle dateinamen und das datum angezeigt wird, das problem ist das umbenennen.
Code:
@echo off & setlocal EnableDelayedExpansion
for /f "delims=" %%i in ('dir /b') do (
echo %%~i
echo %%~ti
echo.)
wobei ich mir dieses " "delims=" " noch nicht so richtig erklären kann, aber ohne funktioniert es nicht...
Mein bisheriger ansatz war:
Code:
ren "%%~i" "%%~ti.%%~"i
funktioniert aber nicht :-P
Ich danke euch schonmal im vorraus
Mit freundlichen Grüßen
Exoroth
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 90888
Url: https://administrator.de/forum/dateien-nach-datei-eigenschaften-umbenennen-via-batch-90888.html
Ausgedruckt am: 26.04.2025 um 11:04 Uhr
7 Kommentare
Neuester Kommentar
Moin Exoroth,
willkommen im Forum.
Versuche es mal mit
...vom CMD-Prompt aus.
Bei Deinem Code....
Grüße
Biber
[Edit] @bastla ... allerdings stört auch der ":" aus der Uhrzeit, -->stimmt. Nehme alles zurück. [/Edit]
willkommen im Forum.
Ich danke euch schonmal im vorraus
Das ist diesem Nebenarm des Forums nicht so gern gesehen - wir bevorzugen Rückmeldungen.Versuche es mal mit
For /R "D:\EinRootVerzeichnis" %i in (*.jpg) do @echo ren "%i" "%~ti.%i"
Bei Deinem Code....
ren "%%~i" "%%~ti.%%~"i
..ist das abschliessende Anführungszeichen eine Position zu früh...Grüße
Biber
[Edit] @bastla ... allerdings stört auch der ":" aus der Uhrzeit, -->stimmt. Nehme alles zurück. [/Edit]
... allerdings stört auch der ":" aus der Uhrzeit, daher doch ein Batch:
Grüße
bastla
[Edit] Zum stressfreien Testen habe ich vor das "ren" noch ein "echo" gesetzt, damit die Umbenennungsbefehle nur angezeigt werden. [/Edit]
@echo off & setlocal
for /f "delims=" %%i in ('dir /b') do call :ProcessFile "%%i"
goto :eof
:ProcessFile
set "New=%~t1.%~nx1"
echo ren %1 "%New::=.%"
goto :eof
bastla
[Edit] Zum stressfreien Testen habe ich vor das "ren" noch ein "echo" gesetzt, damit die Umbenennungsbefehle nur angezeigt werden. [/Edit]
Moin Exoroth,
ich versuche es mal:
->Anweisung: Lass die Zeile ganz, so wie sie ist.
->Beispiel "28.02.2008 11:45.AngelaNackig.jpg"
->Beispiel "28.02.2008 11.45.AngelaNackig.jpg"
Grüße
Biber
ich versuche es mal:
1. Könnte mir einer noch grob erklären:
Zeile 2 "delims"
"delims=" bedeutet: es gibt keine Delimiter/Worttrenner in dieser Zeile.Zeile 2 "delims"
->Anweisung: Lass die Zeile ganz, so wie sie ist.
Zeile 6 "New=%~t1.%~nx1"
Setze Variable NEW mit dem Wert "DatumDerDatei.NameUndEndungDerDatei"->Beispiel "28.02.2008 11:45.AngelaNackig.jpg"
Zeile 7 "%New::=.%"
Ersetze in NEW alle ":" durch "."->Beispiel "28.02.2008 11.45.AngelaNackig.jpg"
2. Wie könnte ich da ein filter einbringen, dass er wirklich nur die *.jpg bilder umbenennt.
Statt "dir /b" ein "Dir /b *.jpg"Grüße
Biber
Hallo Exoroth!
Da Biber schon wider schneller war, nur noch eine Ergänzung: Mit der Eingabe von "for /?" bzw "set /?" an der Kommandozeile erhältst Du eine Menge Info zu Deinen Fragen unter 1.
"delims=" benötigst Du übrigens hier konkret dann, wenn der Dateiname Leerzeichen enthält, da mit der Defaulteinstellung (ohne Angabe von "delims") Leerzeichen (und TAB) als Trennzeichen gelten und Du daher nur den ersten Teil (vor dem ersten Leerzeichen) des Dateinamens erhieltest.
Grüße
bastla
Da Biber schon wider schneller war, nur noch eine Ergänzung: Mit der Eingabe von "for /?" bzw "set /?" an der Kommandozeile erhältst Du eine Menge Info zu Deinen Fragen unter 1.
"delims=" benötigst Du übrigens hier konkret dann, wenn der Dateiname Leerzeichen enthält, da mit der Defaulteinstellung (ohne Angabe von "delims") Leerzeichen (und TAB) als Trennzeichen gelten und Du daher nur den ersten Teil (vor dem ersten Leerzeichen) des Dateinamens erhieltest.
Grüße
bastla
Hallo exoroth!
Grüße
bastla
Kann geschlossen werden 
... kannst Du auch so zeigen: Wie kann ich einen Beitrag als gelöst markieren?Grüße
bastla