Counter wird in der For Schleife nicht erhöht
Ich versuche mich schon seit gestern an einem Skript, was Bilder in einem Ordner umbenennt und am Ende des neuen Dateinamens eine größer werdende Zahl anhängt. Funktioniert eigentlich auch alles, bis auf die Erhöhung des größer werdenden Zahl. Die bleibt imm er gleich aus irgendeinem Grund.
So sieht das Skript bis jetzt aus.
@echo OFF
dir "%CD%\*.jpg" /b /s > C:\temp\logo2.txt
set /A i=1
prompt %h
echo %h
FOR /F "tokens=*" %%g IN (c:\temp\logo2.txt) DO (
rename "%%g" "4-3-2_%i%.jpg"
set /A i=%i%+1
)
Ich hoffe, dass irgendjemand mir bei diesem Problem helfen kann
Stephan
So sieht das Skript bis jetzt aus.
@echo OFF
dir "%CD%\*.jpg" /b /s > C:\temp\logo2.txt
set /A i=1
prompt %h
echo %h
FOR /F "tokens=*" %%g IN (c:\temp\logo2.txt) DO (
rename "%%g" "4-3-2_%i%.jpg"
set /A i=%i%+1
)
Ich hoffe, dass irgendjemand mir bei diesem Problem helfen kann
Stephan
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 65788
Url: https://administrator.de/forum/counter-wird-in-der-for-schleife-nicht-erhoeht-65788.html
Ausgedruckt am: 04.04.2025 um 21:04 Uhr
3 Kommentare
Neuester Kommentar
Moin Grober,
willkommen im Forum.
Für Dein Problem gibt es hier im Forum schon ein paar Erklärungen.
Befrage bitte die Forumssuchfunktion mal nach "verzögerter Variablenauflösung" oder neudeutsch "DelayedExpansion".
Eigentlich vollständig angesprochen ist es auch in der eingebauten Hilfe zur FOR-Anweisung ("FOR /?") am CMD-Prompt.
Grundsätzlich zwei praktikable Lösungsstrategien:
[Beides ungetestete Skizzen]
Grüße
Biber
willkommen im Forum.
Für Dein Problem gibt es hier im Forum schon ein paar Erklärungen.
Befrage bitte die Forumssuchfunktion mal nach "verzögerter Variablenauflösung" oder neudeutsch "DelayedExpansion".
Eigentlich vollständig angesprochen ist es auch in der eingebauten Hilfe zur FOR-Anweisung ("FOR /?") am CMD-Prompt.
Grundsätzlich zwei praktikable Lösungsstrategien:
- mit geCALLtem Block innerhalb der Batchdatei
@ECHO OFF & setlocal
dir "%CD%\*.jpg" /b /s > C:\temp\logo2.txt
set /A i=1
prompt %h
echo %h
FOR /F "tokens=*" %%g IN (c:\temp\logo2.txt) DO call :RenameBlock "%%g"
goto :eof
:: das "goto :eof" in der Vorzeile ist das Ende des Batches
:RenameBlock Parameter 1 ist das %%g aus der FOR /F-Anweisung
rename %1 "4-3-2_%i%.jpg"
set /A i=%i%+1
goto :eof
::Das "goto :eof" in der Vorzeile ist das Ende des Blocks ":RenameBlock"
- mit DelayedExpansion
@ECHO OFF % EnableDelayedExpansion
dir "%CD%\*.jpg" /b /s > C:\temp\logo2.txt
set /A i=1
prompt %h
echo %h
FOR /F "tokens=*" %%g IN (c:\temp\logo2.txt) DO (
rename "%%g" "4-3-2_!i!.jpg"
set /A i=!i!+1
)
Grüße
Biber