Suche Batch Abfolge für Ordner Sortierung bzw. Unterordner zum normalen Ordner zu machen

German support forum

Moderators: white, Hacker, Stefan2

Post Reply
Krosch
Junior Member
Junior Member
Posts: 3
Joined: 2022-01-14, 15:19 UTC

Suche Batch Abfolge für Ordner Sortierung bzw. Unterordner zum normalen Ordner zu machen

Post by *Krosch »

Hallo,

ich habe einige hunderte Archiv-Dateien auf einer alten Festplatte gefunden, die ich nun gern sortieren wollen würde. Problem ist, dass einige Archive nach dem Entpacken einen Ordner enthalten und darin die jeweiligen Dateien, andere Archive aber keinen Ordner enthalten und nur einzelne Dateien. Dies würde ich gern "ordnen".

Mein Plan sieht vor, dass ich die Archive jeweils in einen Ordner gleichen Namens wie das Archiv entpacke. Dann habe ich aber Ordner mit Dateien und Ordner mit Unterordnern und Dateien.

Zum besseren Verständis, würde das dann so z.B. aussehen:

Ordner 1 > Dateien
Ordner 2 > Unterordner 2.1 > Dateien
Ordner 3 > Unterordner 3.1 > Dateien
Ordner 4 > Dateien
Ordner 5 > Unterordner 5.1 > Dateien
Ordner 6 > Dateien
Ordner 7 > Dateien

aussehen soll es dann folgendermaßen:

Ordner 1 > Dateien
Unterordner 2.1 > Dateien
Unterordner 3.1 > Dateien
Ordner 4 > Dateien
Unterordner 5.1 > Dateien
Ordner 6 > Dateien
Ordner 7 > Dateien

Ich möchte also die Ordner "löschen", die einen Unterordner enthalten und der Unterordner dann anstelle des Ordners tritt.
Oder anders: Ich möchte dass der Name des Unterordner auf den Ordner übergeht und der Unterordner dann gelöscht wird. Die Dateien sollen in dem Unterordner enthalten bleiben.

Somit hätte ich dann nur eine Ordnerebene und darunter direkt eine Dateiebene.

Dies würde ich gerne mit einer Batch-Datei erledigen, aber meine Kenntnisse dahingehend sind sehr begrenzt, weshalb ich hoffe, dass mir hier jemand helfen kann. Die Suche dazu, hat mir nichts gebracht (oder ich war zu blöd zu *g*).

Danke :-)
NotNull
Senior Member
Senior Member
Posts: 266
Joined: 2019-11-25, 20:43 UTC
Location: NL

Re: Suche Batch Abfolge für Ordner Sortierung bzw. Unterordner zum normalen Ordner zu machen

Post by *NotNull »

Weshalb postest Du das auf den Total Commander forums? Damit hat es doch nichts zu tun?
Krosch
Junior Member
Junior Member
Posts: 3
Joined: 2022-01-14, 15:19 UTC

Re: Suche Batch Abfolge für Ordner Sortierung bzw. Unterordner zum normalen Ordner zu machen

Post by *Krosch »

NotNull wrote: 2022-01-15, 23:58 UTC Weshalb postest Du das auf den Total Commander forums? Damit hat es doch nichts zu tun?
Warum hat es mit Total Commander nichts zu tun? Nur weil du damit nichts anfangen kannst, heißt es doch nicht, dass das allen so geht?

Nur mal so nebenbei, wenn du einige Buttons drückst - ob selbst gemacht oder vom Programm vorgegebene - da läuft in vielen Fällen eine "Batch-Datei" im Hintergrund - und genau so eine versuche ich mir zu basteln bzw. habe ich die Hoffnung, dass hier jemand helfen kann, da ich es bisher nicht hinbekommen habe.
NotNull
Senior Member
Senior Member
Posts: 266
Joined: 2019-11-25, 20:43 UTC
Location: NL

Re: Suche Batch Abfolge für Ordner Sortierung bzw. Unterordner zum normalen Ordner zu machen

Post by *NotNull »

Krosch wrote: 2022-01-16, 15:15 UTC Warum hat es mit Total Commander nichts zu tun? Nur weil du damit nichts anfangen kannst, heißt es doch nicht, dass das allen so geht?
Na, das stimmt nicht. Schon vorher Ich poste, hätte Ich schon eine Lösung geschrieben (das ist das einfachste; dauerte nur 3 Minuten weil nur 1 Zeile Code) aber wenn es nichts mit TC zu tun hat, kostet es mich zu viel Zeit (20 Minuten mindestens), die Schritte auf Deutsch zu beschreiben.

Also: ohne Beschreibung und minimal getestet:

Code: Select all

for /D %a in (*.*) do ( @dir /b /a-d "%a\*" >nul 2>nul  || (for /f "usebackq skip=1 delims=" %b in (`dir /b /ad "%a\*" `) do @if "%b" == "" echo SKIP) || for /D %f in ("%a\*") do move "%f" "%__CD__%" )
Krosch
Junior Member
Junior Member
Posts: 3
Joined: 2022-01-14, 15:19 UTC

Re: Suche Batch Abfolge für Ordner Sortierung bzw. Unterordner zum normalen Ordner zu machen

Post by *Krosch »

NotNull wrote: 2022-01-16, 15:53 UTC
Krosch wrote: 2022-01-16, 15:15 UTC Warum hat es mit Total Commander nichts zu tun? Nur weil du damit nichts anfangen kannst, heißt es doch nicht, dass das allen so geht?
Na, das stimmt nicht. Schon vorher Ich poste, hätte Ich schon eine Lösung geschrieben (das ist das einfachste; dauerte nur 3 Minuten weil nur 1 Zeile Code) aber wenn es nichts mit TC zu tun hat, kostet es mich zu viel Zeit (20 Minuten mindestens), die Schritte auf Deutsch zu beschreiben.

Also: ohne Beschreibung und minimal getestet:

Code: Select all

for /D %a in (*.*) do ( @dir /b /a-d "%a\*" >nul 2>nul  || (for /f "usebackq skip=1 delims=" %b in (`dir /b /ad "%a\*" `) do @if "%b" == "" echo SKIP) || for /D %f in ("%a\*") do move "%f" "%__CD__%" )


Also erstrmal möchte ich mich für die späte Rückmeldung entschuldigen, und für deine Antwort bedanken. Private Gründe hatten mich daran gehindert.

Inhaltlich passt deine Batch und funktioniert, zwar nur für eine Ordner-Ebene, aber das ist kein Problem, da ich sie einfach mehrfach durchlaufen lasse, bis er nichts mehr verschiebt. Was jedoch jetzt noch fehlt ist, dass er den "leeren" Ordner, aus dem er es verschiebt, gelöscht wird. Hättest du da vielleicht noch einen Tipp?

Vielen Dank!
Post Reply