Wie benennt man dateien per batch script mit einer do loop um?

...komplette Frage anzeigen

1 Antwort

Ein paar Denkfehler und etwas Syntaxmanko...

erstmal... innerhalb einer for-schleife kann man nur mit Verzögerter variablen-expansion (EnableDelayedExpansion) auf innerhalb der schleife "aktualisierte " Variablen zugreifen. statt %x% benutzt man !x! .

In deiner Zählschleife ist der Startwert größer als der Endwert , aber Step ist 1 aber nicht -1 , ergo wird nicht gezählt...

ren *.txt ziel.txt versucht allen Textdateien den gleichen Namen zu geben.
Das geht natürlich schief, da nach er ersten Datei der neue Name bereits existiert.

Richtig ist, innerhalb der Schleife dem Befehl ren jede Qulldatei explizit zuzuweisen und die zählvariable gleich mit hochzuzählen

so ist es richtig:

setlocal EnableDelayedExpansion
set /a "numstart=5"
set /a "anzahl_dateien=numstart"

for %%i in ("*.txt") do (ren "%%i" "richtig!anzahl_dateien!.txt" & set /a "anzahl_dateien+=1")
pause

Was möchtest Du wissen?