andichrist
Goto Top

Zwei Ordner-Ebenen mit gleich lautenden Ordnernamen. Eine ist überflüssig!

Mit Winrar/ 7zip entpackte Dateien wird der Dateinamen 2x angelegt. (1.Ebene) Ordner (2- Ebene) Unterordner mit Inhalt.
Gewünscht ist nur eine Ordner-Ebene mit Inhalt!

Hallo,

ich habe folgende kleine Herausforderung für die ich eine kleine Batch suche! face-smile

Beim entpacken von RAR-Dateien werden 2 Ordner-Ebenen mit gleich lautenden Ordnernamen angelegt. Eine ist überflüssig!

Beispiel-Ordner zB.:
c:/Temp

In diesem sind mehrere Ordner mit exakt gleich lautenden Unterordner mit Dateien. Die Dateien (mehrere) müssen natürlich mit verschoben/kopiert werden! face-wink

3400_aaaaa/3400_aaaa/test.txt
3401_bbbbbbbb/3401_bbbbbbbb/hallo.jpg
3402_zz/3402_zz/welt.txt
...
usw.

Wunsch - nur eine Ordner-Ebene:

3400_aaaa/test.txt
3401_bbbbbbbb/hallo.jpg
3402_zz/welt.txt
...
usw.

Es wäre nett, wenn jemand eine kleine Batch "basteln" könnte!

Danke im Voraus
AndyChrist

Content-ID: 127551

Url: https://administrator.de/forum/zwei-ordner-ebenen-mit-gleich-lautenden-ordnernamen-eine-ist-ueberfluessig-127551.html

Ausgedruckt am: 26.12.2024 um 17:12 Uhr

bastla
bastla 20.10.2009 um 16:57:26 Uhr
Goto Top
Hallo Andy!

Sollte sich so machen lassen:
for /d %%i in (C:\Temp\*.*) do (if exist "%%~i\%%~nxi" move "%%~i\%%~nxi\*.*" "%%~i\" && rd "%%~i\%%~nxi")
Vorsicht - die Zeile ist "scharf" und ungetestet (und verarbeitet alle Unterordner von "C:\Temp") ...

Grüße
bastla
Andichrist
Andichrist 20.10.2009 um 17:22:10 Uhr
Goto Top
Hallo bastla,

das ging ja SUPER schnell. Du brauchtest 7 Minuten! Funktioniert 100%!

Hier für die Nachwelt noch etwas erweitert. So kann die Datei in den Ordner kopiert und aufgerufen werden!

set "targetdir=." & REM  oder Verz. setzen z.B.  set "targetdir=C:\Temp"  

for /d %%i in ("%targetdir%"\*.*) do (if exist "%%~i\%%~nxi" move "%%~i\%%~nxi\*.*" "%%~i\" && rd "%%~i\%%~nxi")  

Danke
AndyChrist
bastla
bastla 20.10.2009 um 17:30:47 Uhr
Goto Top
Hallo Andy!
das ging ja SUPER schnell. Du brauchtest 7 Minuten!
Viel mehr Zeit hatte ich leider auch gerade nicht ... face-wink

... daher musste ich das "Behübschen" Dir überlassen (wobei ich eigentlich nur das schließende Anführungszeichen minimal anders gesetzt und < code>-Tags verwendet hätte):
for /d %%i in ("%targetdir%\*.*") do (if exist "%%~i\%%~nxi" move "%%~i\%%~nxi\*.*" "%%~i\" && rd "%%~i\%%~nxi")
Grüße
bastla
Andichrist
Andichrist 20.10.2009 um 17:46:18 Uhr
Goto Top
Hi bastla,

da sieht man erst was Du "schon" in 7 Minuten alles leisten kannst. Was machst Du erst in einer halben Stunden! *grins*

Danke für den Hinweis mit dem setzen der ". Bei den Tags war ich mir nicht mehr sicher bezüglich der korrekten Schreibweise! face-wink


So long
AndyChrist