24184
12.12.2006, aktualisiert am 13.12.2006
23051
6
0
Ordner umbenennen per batch
Hallo alle zusammen,
ich benötige mal Eure Hilfe.
Ich habe einen Ordner in dem sich Ordner befinden die bspw. wie folgt bezeichnet sind:
20061201 oder 20061202 usw.
Ich will eine Batchdatei schreiben mit der ich sagen kann - rename alle Ordner in dem Ordner nach dem Schema:
xxxx-xx-xx
Wie sag ich das mit dem Schema, geht das überhaupt?
Vorab Vielen herzlichen Dank
ThoNi
ich benötige mal Eure Hilfe.
Ich habe einen Ordner in dem sich Ordner befinden die bspw. wie folgt bezeichnet sind:
20061201 oder 20061202 usw.
Ich will eine Batchdatei schreiben mit der ich sagen kann - rename alle Ordner in dem Ordner nach dem Schema:
xxxx-xx-xx
Wie sag ich das mit dem Schema, geht das überhaupt?
Vorab Vielen herzlichen Dank
ThoNi
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 46553
Url: https://administrator.de/contentid/46553
Ausgedruckt am: 25.11.2024 um 08:11 Uhr
6 Kommentare
Neuester Kommentar
"@echo off" schaltet dir die Anzeige jeder Zeile aus.
"Setlocal EnableDelayedExpansion" brauchst du damit nach den set Name=%%i in der for schleife die Variable Name gleich benutzt werden kann.
Jetzt zu "FOR /F %%i in ('dir /b /a:D') do set Name=%%i && rename !Name! !Name:~0,4!-!Name:~4,2!-!Name:~6,2!" :
Der Befehl "dir /b /a:D" würde dir alle Ordner in diesem Verzeichnis auflisten. Durch die For schleife "FOR /F %%i in ('dir /b /a:D') do set Name=%%i" wird von dieser Auflistung Zeile für Zeile durgegangen und die Ordnernamen in der Variablen "Name" gespeichert. Duch das anschliesende "&& rename !Name! !Name:~0,4!-!Name:~4,2!-!Name:~6,2!" wird mit dieser Variablen der neue Name zusammengebaut und eben umbenannt. Dabei bedeutet "!Name:~0,4!" das er die ersten vier Zeichen der Variablen "Name" benutzt. "!Name:~4,2!" beinhaltet nur das 5. und 6. Zeichen und entsprechend "!Name:~6,2!" das 7. und 8. Zeichen.
Als Beispiel:
Name wäre 20061201:
!Name:~0,4! wäre 2006
!Name:~4,2! wäre 12
!Name:~6,2! wäre 01
das "!Name:~0,4!-!Name:~4,2!-!Name:~6,2!" setzt so also das ganze zu "2006-12-01" zusammen. Das ganze "rename !Name! !Name:~0,4!-!Name:~4,2!-!Name:~6,2!" benennt also in diesem Beispiel das "20061201" zu "2006-12-01" um. Und dies eben für jede Zeile der Auflistung.
Ich hofffe das war einigermasen verständlich erklärt.
miniversum
"Setlocal EnableDelayedExpansion" brauchst du damit nach den set Name=%%i in der for schleife die Variable Name gleich benutzt werden kann.
Jetzt zu "FOR /F %%i in ('dir /b /a:D') do set Name=%%i && rename !Name! !Name:~0,4!-!Name:~4,2!-!Name:~6,2!" :
Der Befehl "dir /b /a:D" würde dir alle Ordner in diesem Verzeichnis auflisten. Durch die For schleife "FOR /F %%i in ('dir /b /a:D') do set Name=%%i" wird von dieser Auflistung Zeile für Zeile durgegangen und die Ordnernamen in der Variablen "Name" gespeichert. Duch das anschliesende "&& rename !Name! !Name:~0,4!-!Name:~4,2!-!Name:~6,2!" wird mit dieser Variablen der neue Name zusammengebaut und eben umbenannt. Dabei bedeutet "!Name:~0,4!" das er die ersten vier Zeichen der Variablen "Name" benutzt. "!Name:~4,2!" beinhaltet nur das 5. und 6. Zeichen und entsprechend "!Name:~6,2!" das 7. und 8. Zeichen.
Als Beispiel:
Name wäre 20061201:
!Name:~0,4! wäre 2006
!Name:~4,2! wäre 12
!Name:~6,2! wäre 01
das "!Name:~0,4!-!Name:~4,2!-!Name:~6,2!" setzt so also das ganze zu "2006-12-01" zusammen. Das ganze "rename !Name! !Name:~0,4!-!Name:~4,2!-!Name:~6,2!" benennt also in diesem Beispiel das "20061201" zu "2006-12-01" um. Und dies eben für jede Zeile der Auflistung.
Ich hofffe das war einigermasen verständlich erklärt.
miniversum
@miniversum
Grüße
Biber
Ich hofffe das war einigermasen verständlich erklärt.
Ich als neutraler Beobachter finde es jedenfalls 5 Sterne und einen Grünen Haken wert.Grüße
Biber