Verschachtelte Verzeichnisse verschieben

German support forum

Moderators: white, Hacker, Stefan2

Post Reply
tc_fun
Senior Member
Senior Member
Posts: 208
Joined: 2015-12-05, 16:47 UTC

Verschachtelte Verzeichnisse verschieben

Post by *tc_fun »

Hallo,

welche Möglichkeiten gibt es, um folgende Aufgabe mit dem Total Commander (ggf. Addons) zu lösen:

Hinweis: Die nummerischen Ordnernamen gibt es nicht. Die sind gewählt, um das Problem zu verdeutlichen. Es gibt unterschiedlich viele (zum Teil gleichnamige) verschachtelte Unterverzeichnisse, in denen nichts ist, außer wieder ein Unterverzeichnis.

Ausgehend von einem Startverzeichnis

"D:\Test"

mit z.B. 30 Unterverzeichnissen in Ebene 1

"D:\Test\01"
"D:\Test\02"
...
"D:\Test\30"

soll jedes Unterverzeichnis in den 30 Verzeichnissen jeweils solange eine Ebene nach oben verschoben werden, solange sich im Unterverzeichnis nur 1 Verzeichnis (mit eventuell weiteren Unterverzeichnissen und Dateien) befindet.

Beispiel:

Quelle
D:\Test\01\01\01\juhu

In dieser Verzeichnisstruktur gibt es nur im Verzeichnis "juhu" weitere Dateien und mehrere Verzeichnisse

also

D:\Test\01\01\01\juhu\A\
D:\Test\01\01\01\juhu\A\Montag.txt
D:\Test\01\01\01\juhu\B\
D:\Test\01\01\01\juhu\B\Dienstag.txt

In den anderen Unterverzeichnissen
D:\Test\01\01\01
D:\Test\01\01
D:\Test\01

gibt es nur je 1 Unterverzeichnis (in diesem Beispiel namens "01").

Ziel:
Verschiebe das Verzeichnis "juhu" wie folgt:

D:\Test\01\01\01\juhu -> D:\Test\01\juhu

Dabei beachten, die Unterverzeichnisse können den gleichen Verzeichnisnamen aufweisen, wie das drüber liegende Verzeichnis.

Wie kann das automatisch mit dem Total Commander (und ggf. Addons) gelöst werden?

Ein schönes Wochenende und vielleicht knacken wir diese Nuss :-)
User avatar
sqa_wizard
Power Member
Power Member
Posts: 3862
Joined: 2003-02-06, 11:41 UTC
Location: Germany

Post by *sqa_wizard »

Wenn du den Namen des zu verschiebenden Unterverzeichnis (oder einen markanten Teil) kennst gibt es eine Möglichkeit.

Annahmen:
- Unterverzeichnis ist "juhu"
- TC steht in "D:\Test"

Aktionen:
- Mit ALt-F7 Suche aufrufen
- Suchen nach: juhu
- Erweitert - Attribute: Bei "Verzeichnis" Haken setzen
- Suche starten
- "Anwenden" betätigen
=> gefundene Verzeichnisse sind nun im Dateifenster

- Alle zu verschiebenden Einträge markieren
- mit Strg-M das Mehrfach-Umbenenn-Tool aufrufen
- Suchen nach: juhu
- Ersetzen durch: ..\..\juhu

Damit wird das gefundene Verzeichnis 2 Ebenen tiefer geschoben.
Bei 3 Ebenen entsprechend also ..\..\..\juhu

HTH
#5767 Personal license
tc_fun
Senior Member
Senior Member
Posts: 208
Joined: 2015-12-05, 16:47 UTC

Post by *tc_fun »

Danke - das ist ein sehr interessanter Tipp.

Leider kenne ich den Namen des letzten Verzeichnis nicht.
Zudem ist die Verschachtelungstiefe sehr unterschiedlich. Das können von 1 bis x Unterverzeichnisse sein.

d:\test\01\abc\test\03\juhu
=
d:\test\x-beliebige-Anzahl-von-Unterverzeichnissen\juhu
->
d:\test\juhu

Es sind mehrfach verschachtelte Verzeichnisse mit je einem Unterverzeichnis, bis endlich der Datenteil kommt.

Im Prinzip suche ich nach einer Logik-Verschieben-Funktion:

Verschiebe das Unterverzeichnis eine Ebene höher, wenn es neben dem Unterverzeichnis auf der Ebene keine weiteren Dateien oder Verzeichnisse gibt.
Post Reply