darumble
Goto Top

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 face-wink

Ordner1/Ordner2 -> Ordner1/Ordner1 - Ordner2

Wäre jemand so freundlich? face-wink

Besten Dank
Gruß

Content-Key: 101794

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

Printed on: April 24, 2024 at 22:04 o'clock

Member: bastla
bastla Nov 13, 2008 at 23:21:40 (UTC)
Goto Top
Hallo darumble und willkommen im Forum!

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"  
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
Member: darumble
darumble Nov 14, 2008 at 06:39:01 (UTC)
Goto Top
Hi,

erstmal vielen dank.

Funktioniert azwar, aber ich glaube ich hätte mich etwas genauer ausdrücken müssen face-wink

Gibts ne Möglichkeit, dass das ganze vollautomatisch läuft?

Also ich hab halt jede Menge Ordner wo das passieren soll.

Hauptverzeichnis/Ordner1/Ordner2
Hauptverzeichnis/Ordner4/Ordner5
Hauptverzeichnis/Ordner6/Ordner7

soll dann so aussehen:
Hauptverzeichnis/Ordner1/Ordner1 - Ordner2
Hauptverzeichnis/Ordner4/Ordner4 - Ordner5
Hauptverzeichnis/Ordner6/Ordner6 - Ordner7


Also quasi eine Batch dann im Hauptverzeichnis, wäre top face-smile

Wenns net geht, muss ich mir was anderes überlegen.
Member: Biber
Biber Nov 14, 2008 at 08:47:44 (UTC)
Goto Top
Moin darumble,

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"  
[ggf. ein "mode con cols=166 lines=55" vorab *g]
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
Member: darumble
darumble Nov 14, 2008 at 15:25:31 (UTC)
Goto Top
Ok super danke, jetzt bin ich schon fast da face-smile

Hab nur noch Probleme falls der Ordner Leerzeilen enthält. Ne Idee?

C:\test>cm02.bat
C:\test>for %i in (c:\test) do for / %j in (%i\*) >do for / %k in (%j\*) do ren "
%k" "%~nxj - %~nxk"
C:\test>for / %j in (c:\test\*) do for / %k in >(%j\*) do ren "%k" "%~nxj - %~nxk
"
C:\test>for / %k in (c:\test\Neuer Ordner\*) do >ren "%k" "Neuer Ordner - %~nxk"
C:\test>ren "c:\test\Neuer" "Neuer Ordner - Neuer"
Das System kann die angegebene Datei nicht finden.
Member: bastla
bastla Nov 14, 2008 at 15:40:19 (UTC)
Goto Top
Hallo darumble!

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"
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 ... face-wink [/Edit]
Member: Biber
Biber Nov 14, 2008 at 15:45:49 (UTC)
Goto Top
Moin darumble,

falls bastla mich nicht wieder rechts überholt, versuche es so:
Demo am CMD-Prompt:
>for %i in (d:\temp) do @for /d %j in ("%i\N*") do @for /d %k in ("%j\*") do @echo ren "%k" "%~nxj - %~nxk"  
ren "d:\temp\neuer ordner\neuer unterordner" "neuer ordner - neuer unterordner"  

Grüße
Biber
Member: darumble
darumble Nov 14, 2008 at 15:53:22 (UTC)
Goto Top
Wunderbar danke euch beiden!

Echt super Forum, da kömmt man doch öfters vorbei face-wink

Gruß
darumble