Ordnernamen via Batch einen String hinzufügen
Guten Tag zusammen,
ich habe einen Ordner mit ca. 1000 Windows Terminalserver Profilen. Die Namen der Profilordner lauten entweder "[Benutzername]" oder "[Benutzername].V2" oder "[Benutzername].[Domänenname].V2". Nun müsste ich bei allen Ordnern, welche nur den Benutzernamen im Namen tragen, einen festen String anhängen z.B. ".test"
Wichtig ist, dass die Ordner in den Profilen nicht angefasst werden. Leider habe ich absolut keine Ahnung wie ich das bewerkstelligen könnte.
Ich hoffe Ihr könnt mir weiterhelfen.
Gruß SteveS
ich habe einen Ordner mit ca. 1000 Windows Terminalserver Profilen. Die Namen der Profilordner lauten entweder "[Benutzername]" oder "[Benutzername].V2" oder "[Benutzername].[Domänenname].V2". Nun müsste ich bei allen Ordnern, welche nur den Benutzernamen im Namen tragen, einen festen String anhängen z.B. ".test"
Wichtig ist, dass die Ordner in den Profilen nicht angefasst werden. Leider habe ich absolut keine Ahnung wie ich das bewerkstelligen könnte.
Ich hoffe Ihr könnt mir weiterhelfen.
Gruß SteveS
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 123327
Url: https://administrator.de/forum/ordnernamen-via-batch-einen-string-hinzufuegen-123327.html
Ausgedruckt am: 09.01.2025 um 15:01 Uhr
6 Kommentare
Neuester Kommentar
Hallo, SteveS und willkommen im Forum.
Unter der Voraussetzung, dass die nicht umzubenennenden Ordner alle ausnahmslos ein ".V2" im Namen enthalten, könntest du folgende Batchdatei benutzen:
das @echo vor ren in Zeile 14 dient zum Testen und muss zur richtigen Ausführung entfernt werden
Unter der Voraussetzung, dass die nicht umzubenennenden Ordner alle ausnahmslos ein ".V2" im Namen enthalten, könntest du folgende Batchdatei benutzen:
@echo off & setlocal
:: Hier den Pfadnamen des Profilverzeichnisses eintragen, in dem sich die Benutzerordner befinden
Set ProfileDir="LW:\Pfad"
pushd %profiledir%
for /F "delims=" %%a in ('dir /ad /b *.* ^|Find /i /V ".V2"') do call :Process "%%a"
popd
pause
goto :eof
:Process
@echo %1 | find /i /V ".test"
if "%errorlevel%"=="0" @echo ren "%~1" "%~1.test"
das @echo vor ren in Zeile 14 dient zum Testen und muss zur richtigen Ausführung entfernt werden
... oder, um's etwas abzukürzen und sich nicht auf ".V2" festlegen zu müssen (allerdings nur, wenn der Benutzername keinen Punkt enthält):
Grüße
bastla
@echo off & setlocal
set "ProfileDir=LW:\Pfad"
set "Zusatz=test"
pushd "%ProfileDir%"
for /f "tokens=1* delims=." %%i in ('dir /b /ad') do if "%%j"=="" ren "%%i" "%%i.%Zusatz%"
popd
bastla
(allerdings nur, wenn der Benutzername keinen Punkt enthält):
Genau daran habe ich gedacht. Mal sehen......