klanax
Goto Top

Ordner mit Platzhalter umbenennen

Hallo an alle!

Ich möchte per Batch (nicht PowerShell) Verzeichnisse umbenennen nach folgendem Schema:

vorher:
C:\Users\Public\Ordner_1_A
C:\Users\Public\Ordner_1_B

nachher:
C:\Users\Public\Ordner_2_A
C:\Users\Public\Ordner_2_B

Da ich bei den Verzeichnissen die Buchstaben A und B nicht kenne, möchte ich alles umbenennen, was "Ordner_1...." heißt.

Mein Versuch
ren C:\Users\Public\Ordner_1* Ordner_2*
bringt einen Syntaxfehler. Ähnliche Versuche ebenfalls.
Und die Google-Suche bringt mich auch nicht wirklich weiter.

Hat jemand eine Idee.

Viele Grüße

Klanax

Content-ID: 5459207189

Url: https://administrator.de/contentid/5459207189

Ausgedruckt am: 21.11.2024 um 19:11 Uhr

5175293307
Lösung 5175293307 18.01.2023 aktualisiert um 17:08:45 Uhr
Goto Top
@echo off
for /d %%a in ("C:\Users\Public\Ordner_1_*") do for /f "tokens=1,2,* delims=_"  %%b in ("%%~nxa") do ren "%%a" "Ordner_2_%%d"  
oder wenn replace statt split mit delimiter gewünscht ist
@echo off &setlocal enabledelayedexpansion
set "from=Ordner_1_"  
set "to=Ordner_2_"  
for /d %%a in ("C:\Users\Public\%from%*") do (  
    set "folder=%%~nxa"  
    set "folder=!folder:%from%=%to%!"  
    ren "%%a" "!folder!"  
)
Gruß wurstel
klanax
klanax 19.01.2023 um 11:37:37 Uhr
Goto Top
Hallo wurstel,

ich dachte, ich könnte mich vor der for-Schleife drücken face-smile

Deine erste Lösung hat geholfen.

Vielen Dank und viele Grüße

klanax
5175293307
5175293307 19.01.2023 aktualisiert um 11:45:09 Uhr
Goto Top
Zitat von @klanax:
ich dachte, ich könnte mich vor der for-Schleife drücken face-smile
Dann lerne doch gleich die Powershell und hantiere nicht mehr mit DDR-Code aus dem 20ten Jahrhundert face-smile.
Get-ChildItem "D:\Ordner" -Filter "Ordner_1_*" -Directory | rename-item -NewName {$_.Name.Replace('Ordner_1_','Ordner_2_')} -Verbose