Batch Rename Problem
Hallo,
ich habe Probleme mit dem rename-Befehl.
Ich würde gerne alle Dateien in einem Verzeichnis umbennen. Dies scheint aber nicht mit dem Rename-Befehl möglich zu sein.
XXX_de_.htm in XXX_00.htm
dies hatte ich versucht über
umzubennenen. Leider reichen meine Batch-Kenntnisse nicht für eine for-Schleife aus.
Das Problem ist das diese Dateien nicht nur einmalig umbennant werden müssen, dies muss also als Batch-Programm möglich
sein.
ich habe Probleme mit dem rename-Befehl.
Ich würde gerne alle Dateien in einem Verzeichnis umbennen. Dies scheint aber nicht mit dem Rename-Befehl möglich zu sein.
XXX_de_.htm in XXX_00.htm
dies hatte ich versucht über
ren *_de_.htm *_00.htm
umzubennenen. Leider reichen meine Batch-Kenntnisse nicht für eine for-Schleife aus.
Das Problem ist das diese Dateien nicht nur einmalig umbennant werden müssen, dies muss also als Batch-Programm möglich
sein.
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Kommentar vom Moderator Biber am 07.09.2009 um 12:41:02 Uhr
einem Verzeichnis umbennen
Set /a rgc+=1--> #612
...umzubennenen. Leider reichen meine Batch-Kenntnisse
Set /a rgc+=1--> #613
Content-ID: 124355
Url: https://administrator.de/forum/batch-rename-problem-124355.html
Ausgedruckt am: 15.04.2025 um 17:04 Uhr
12 Kommentare
Neuester Kommentar
Hi,
wurde hier schon oft besprochen, ich hab nicht so ganz genau reingeguckt aber z.b. String aus Dateinamen abfragen und ändern per Batch hört sich passend an
gruß
wurde hier schon oft besprochen, ich hab nicht so ganz genau reingeguckt aber z.b. String aus Dateinamen abfragen und ändern per Batch hört sich passend an
gruß
Moin E2EK1EL,
angenommen, die bisherigen Quell-Dateinamen enthalten als ersten Unterstrich im Namen den vor dem Suffix "_de".
[ungetestet]
Grüße
Biber
angenommen, die bisherigen Quell-Dateinamen enthalten als ersten Unterstrich im Namen den vor dem Suffix "_de".
@echo off & setlocal
set "Dateien=H:\bw-export\*_de_.htm"
for /f "delims=" %%i in ("%Dateien%") do call :ProcessFile "%%i"
goto :eof
:ProcessFile
FOR /F "delims=_" %%a in ("%~n1") DO ren "%~1" "%%a_00.htm"
goto :eof
Grüße
Biber
Hi E2EK1EL,
das in dem rename kommt daher, weil
*_00.htm
den letztzen Unterstrich in der Originaldatei sucht und alles was davor steht als preName Auflöst.
wenn kein Unterstrich gefunden wird, wird der Komplette Name Aufgelöst.
also auch noch _de in den preName-Teil einfügt.
daher hat Dein rename in etwa so umbenannt
*_de_00.htm
Gruß Phil
das in dem rename kommt daher, weil
*_00.htm
den letztzen Unterstrich in der Originaldatei sucht und alles was davor steht als preName Auflöst.
wenn kein Unterstrich gefunden wird, wird der Komplette Name Aufgelöst.
also auch noch _de in den preName-Teil einfügt.
daher hat Dein rename in etwa so umbenannt
*_de_00.htm
Gruß Phil
ahhh der bring bestimmt einen syntaxfehler und das & vor dem Call fehlt - sorry
diesmal kannste die Batch auch mehrmals ausführen falls neue Dateien dazukommen.
@echo off & setlocal
set "Dateien=H:\bw-export\*_de_.htm"
for /f "delims=" %%i in ("%Dateien%") do (set "name=%%i" & set "um=%%~nxi" & call :ProcessFile )
goto :eof
:ProcessFile
if not exist "%name:de_.htm=%de_.htm" goto :eof
ren "%name%" "%um:de_.htm=%00.htm"
diesmal kannste die Batch auch mehrmals ausführen falls neue Dateien dazukommen.
01. setlocal = ausfühliche Erklärung im Tutorial Batch Umgebungsvariablen
02. pushD = setze den aktuellen Pfad und merke den alten
04. for = ist eine ForSchleife vllt mach ich da mal en TUT
05. popD = komm wieder in den alten pfad zurück
06. goto :eof = Beende die Aktuelle Routine
09. findest Du auch antworten für UmgebungsVariablen im TUT
Gruß Phil
02. pushD = setze den aktuellen Pfad und merke den alten
04. for = ist eine ForSchleife vllt mach ich da mal en TUT
05. popD = komm wieder in den alten pfad zurück
06. goto :eof = Beende die Aktuelle Routine
09. findest Du auch antworten für UmgebungsVariablen im TUT
Gruß Phil