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.
Please also mark the comments that contributed to the solution of the article
Kommentar vom Moderator Biber am Sep 07, 2009 um 10:41:02 Uhr
einem Verzeichnis umbennen
Set /a rgc+=1--> #612
...umzubennenen. Leider reichen meine Batch-Kenntnisse
Set /a rgc+=1--> #613
Content-Key: 124355
Url: https://administrator.de/contentid/124355
Printed on: April 26, 2024 at 14:04 o'clock
12 Comments
Latest comment
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