Ordnernamen des übergeordneten Ordners vor die Unterordner
Nabend zusammen,
hab ein wenig rumgedocktert, bekomm es aber leider nicht hin.
Und zwar möchte ich, wie der Titel schon sagt, den Ordnernamen des übergeordneten Ordner den untergeordneten Ordnern voranstellen.
Denke ein Beispiel machts klarer
Ordner1/Ordner2 -> Ordner1/Ordner1 - Ordner2
Wäre jemand so freundlich?
Besten Dank
Gruß
hab ein wenig rumgedocktert, bekomm es aber leider nicht hin.
Und zwar möchte ich, wie der Titel schon sagt, den Ordnernamen des übergeordneten Ordner den untergeordneten Ordnern voranstellen.
Denke ein Beispiel machts klarer
Ordner1/Ordner2 -> Ordner1/Ordner1 - Ordner2
Wäre jemand so freundlich?
Besten Dank
Gruß
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 101794
Url: https://administrator.de/forum/ordnernamen-des-uebergeordneten-ordners-vor-die-unterordner-101794.html
Ausgedruckt am: 20.05.2025 um 12:05 Uhr
7 Kommentare
Neuester Kommentar
Hallo darumble und willkommen im Forum!
Wenn Du den Batch mit dem gewünschten Ordner als Parameter (= %1) aufrufst, dann etwa so:
Das "echo" vor dem "ren" ist zum Testen da - wenn Du es entfernst, wird tatsächlich umbenannt.
Falls der Ordner im Hauptverzeichnis liegt, kann natürlich keine Umbenennung erfolgen.
Grüße
bastla
Wenn Du den Batch mit dem gewünschten Ordner als Parameter (= %1) aufrufst, dann etwa so:
@echo off & setlocal
set "Parent=%~p1"
for /f "delims=" %%i in ("%Parent:~,-1%") do echo ren %1 "%%~nxi - %~nx1"
Falls der Ordner im Hauptverzeichnis liegt, kann natürlich keine Umbenennung erfolgen.
Grüße
bastla
Moin darumble,
willkommen im Forum.
Wieso sollte irgendetwas "net gehen" mit Batch?
Schiess folgende Zeile am CMD-Prompt ab zum Proof-of-Concept:
[ggf. ein "mode con cols=166 lines=55" vorab *g]
Beispieloutput bei mir:
Wenn das Ergebnis Deinen Erwartungen entsprechen sollte, pack das ganze in einen Batch.
Verdoppele dazu alle einfachen Prozentzeichen und lösche die fünf Zeichen "@echo".
Grüße
Biber
willkommen im Forum.
Wieso sollte irgendetwas "net gehen" mit Batch?
Schiess folgende Zeile am CMD-Prompt ab zum Proof-of-Concept:
for %i in (x:\Hauptverzeichnis) do @for /d %j in (%i\*) do @for /d %k in (%j\*) do @echo ren "%k" "%~nxj - %~nxk"
Beispieloutput bei mir:
for %i in (d:\temp) do @for /d %j in (%i\*) do @for /d %k in (%j\*) do @echo ren "%k" "%~nxj - %~nxk"
....
ren "d:\temp\Backup1\Admincopy" "Backup1 - Admincopy"
ren "d:\temp\Backup1\Exchange" "Backup1 - Exchange"
ren "d:\temp\Backup1\tsprofil" "Backup1 - tsprofil"
ren "d:\temp\Backup1\WINDOWS" "Backup1 - WINDOWS"
ren "d:\temp\backup3\alltheTestFiles" "backup3 - alltheTestFiles"
....
Wenn das Ergebnis Deinen Erwartungen entsprechen sollte, pack das ganze in einen Batch.
Verdoppele dazu alle einfachen Prozentzeichen und lösche die fünf Zeichen "@echo".
Grüße
Biber
Hallo darumble!
So sollte es gehen:
Grüße
bastla
P.S.: Falls Du öfters Batches oder Ausgabezeilen postest, solltest Du einen Blick auf Formatierungsmöglichkeit werfen ...
[Edit] @Biber: Tut mir schrecklich furchtbar ...
[/Edit]
So sollte es gehen:
for %%i in ("c:\test") do @for /d %%j in ("%%i\*") do @for /d %%k in ("%%j\*") do @echo ren "%%k" "%%~nxj - %%~nxk"
bastla
P.S.: Falls Du öfters Batches oder Ausgabezeilen postest, solltest Du einen Blick auf Formatierungsmöglichkeit werfen ...
[Edit] @Biber: Tut mir schrecklich furchtbar ...