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-Key: 5459207189

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

Printed on: April 27, 2024 at 18:04 o'clock

Mitglied: 5175293307
Solution 5175293307 Jan 18, 2023 updated at 16:08:45 (UTC)
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
Member: klanax
klanax Jan 19, 2023 at 10:37:37 (UTC)
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
Mitglied: 5175293307
5175293307 Jan 19, 2023 updated at 10:45:09 (UTC)
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