Dateien aus Unterordnern ein paar Ebenen nach oben moven?

German support forum

Moderators: Hacker, Stefan2, white

Post Reply
1st_Moon
Junior Member
Junior Member
Posts: 21
Joined: 2005-09-13, 08:30 UTC

Dateien aus Unterordnern ein paar Ebenen nach oben moven?

Post by *1st_Moon »

Da der TC ja ein Alleskönner ist und ich die Funktion STRG-B öfter mal nutze, frag ich einfach mal hier, ob man folgendes schnell und bequem mit dem TC machen kann: ich habe einen Ordner mit 60 Unterordnern, in denen jeweils erst 3 Ebenen weiter runter einige Dateien sind. Diese hätte ich gern alle auf die 2. Ebene gemoved, also von

d:\files\dir1\dir2\dir3\*.*

nach

d:\files\dir1\*.*

Geht das irgendwie per batch oder so? Danke!
User avatar
ghisler(Author)
Site Admin
Site Admin
Posts: 50746
Joined: 2003-02-04, 09:46 UTC
Location: Switzerland
Contact:

Post by *ghisler(Author) »

Wenn Sie links und rechts d:\files\dir1\ einstellen und auf einer Seite Strg+B drücken, können Sie anschliessend alle Dateien mit F6 nach d:\files\dir1\ verschieben - egal auf welcher Unterebene sie liegen.
Author of Total Commander
https://www.ghisler.com
Moon
Member
Member
Posts: 195
Joined: 2003-09-12, 07:41 UTC

Post by *Moon »

Kannst ruhig duzen, Christian ;)

Danke, aber genau das meinte ich mit "Funktion STRG-B öfter mal nutzen", allerdings ist mir das für 60 Unterordner doch etwas Arbeit, die ich mir gern ersparen würde. Ein Linuxer würd sowas mit nem 1-zeiligen Perlscript hinkriegen, ich hab davon leider keinen Plan.
User avatar
Dalai
Power Member
Power Member
Posts: 10003
Joined: 2005-01-28, 22:17 UTC
Location: Meiningen (Südthüringen)

Post by *Dalai »

Sowas lässt sich auch mit nem Batchskript lösen:

Code: Select all

@echo off
for /f %%i IN (dirlist.txt) DO (
    REM move %%i*.* %~dpi..\..\*.*
    echo move %%i*.* -^> %~dpi..\..\*.*
)
Das ist nur ein ungetesteter Entwurf. Schau erstmal, was das Skript ausgibt und dann kannst du das eigentliche move freischalten (REM entfernen).

Um das Skript zu nutzen, erstellst du eine Datei namens dirlist.txt (Name kannst du auch gern anpassen, muss nur zum Skript passen). Das geht auch mit dem TC, indem du alle gewünschten Verzeichnisse markierst und die Auswahl in eine Datei speicherst. Diese Datei sieht dann z.B. so aus:

Code: Select all

d:\files\dir1\dir2\dir3\
d:\files\dir1\dir2\dir4\
Achte darauf, dass die Verzeichnisse alle einen abschließenden Backslash haben!

Dann eine Konsole öffnen und das Skript ausführen, natürlich in dem Verzeichnis, in dem die Auswahl gespeichert wurde ;).

HTH
MfG Dalai
#101164 Personal licence
Ryzen 5 2600, 16 GiB RAM, ASUS Prime X370-A, Win7 x64

Plugins: Services2, Startups, CertificateInfo, SignatureInfo, LineBreakInfo - Download-Mirror
matbal
Member
Member
Posts: 182
Joined: 2004-11-28, 19:40 UTC

Post by *matbal »

ähnlich könnte man das auch mit Bordmitteln über das Mehrfachumbenenn-Tool hinbekommen:

1. Dateien suchen (oder STRG-B)

Wenn man sichergehen will, daß nur Dateien in der richtigen Tiefe verwendet werden, muß man mit einem Plugin (z.B. filex) die Suchtiefe festlegen.

2. Dateien markieren und das MU starten (STRG-M)

Code: Select all

    Suchen: ^
    Ersetzen: ..\\..\\
    [x] RegEx
Moon
Member
Member
Posts: 195
Joined: 2003-09-12, 07:41 UTC

Post by *Moon »

@Dalai
Beim Schreiben der Auswahl in die Datei erhalte ich
\dir1\
\dir2\
\dir3\
\dir4\
etc.
Beim Ausführen bekomme ich die Meldung Syntaxfehler.

@matbal
Elegant! STRG-B + ersetzen, fertig!
algol
Senior Member
Senior Member
Posts: 456
Joined: 2007-07-31, 14:45 UTC

Post by *algol »

matbal wrote: Suchen: ^
Ersetzen: ..\\..\\
[x] RegEx
:!: :!: :!: :idea: :idea: :idea: :!: :!: :!:
User avatar
Dalai
Power Member
Power Member
Posts: 10003
Joined: 2005-01-28, 22:17 UTC
Location: Meiningen (Südthüringen)

Post by *Dalai »

Moon wrote:@Dalai
Beim Schreiben der Auswahl in die Datei erhalte ich
\dir1\
\dir2\
\dir3\
\dir4\
etc.
Beim Ausführen bekomme ich die Meldung Syntaxfehler.
Nunja, sowas hab ich befürchtet. Du musst die kompletten Pfade in die Datei speichern. Es kann dennoch sein, dass es dann nicht läuft, weil die CMD nicht so arbeitet, wie man sich das denkt... Egal, ich schrieb ja, dass das ein ungetestetes Beispiel ist und das war nur als Anregung gedacht, weil mir die Umbenennmethode im TC nicht in den Sinn kam ;). Evtl. hilft's jemand anders.

MfG Dalai
#101164 Personal licence
Ryzen 5 2600, 16 GiB RAM, ASUS Prime X370-A, Win7 x64

Plugins: Services2, Startups, CertificateInfo, SignatureInfo, LineBreakInfo - Download-Mirror
sarahschnecke
Junior Member
Junior Member
Posts: 11
Joined: 2004-09-11, 02:46 UTC

Post by *sarahschnecke »

Guck Dir doch mal den Thread
http://ghisler.ch/board/viewtopic.php?t=4932
an. Da hatte ich ein ähnliches Problem und bekam tolle Lösungsvorschläge, evtl hilft es Dir ja weiter. :wink:
MC
Senior Member
Senior Member
Posts: 402
Joined: 2003-02-05, 13:53 UTC

Post by *MC »

Moon wrote: Danke, aber genau das meinte ich mit "Funktion STRG-B öfter mal nutzen", allerdings ist mir das für 60 Unterordner doch etwas Arbeit
Das verstehe ich jetzt nicht. Das macht man doch nur ein mal für alle 60 Unterordner gleichzeitig. Und das Ergebnis ist das Gleiche wie bei Matbal, nur deutlich schneller und einfacher - oder wie oder was...
algol
Senior Member
Senior Member
Posts: 456
Joined: 2007-07-31, 14:45 UTC

Post by *algol »

MC wrote:Das verstehe ich jetzt nicht. Das macht man doch nur ein mal für alle 60 Unterordner gleichzeitig. Und das Ergebnis ist das Gleiche wie bei Matbal, nur deutlich schneller und einfacher - oder wie oder was...
Moon wollte ja von

d:\files\60dir1\dir2\dir3\*.*
nach -jeweils-
d:\files\60dir1\*.*

und nicht alles auf einen Haufen in der "files"-Ebene.

Die von Matbal angebotene MUT-Lösung (bzw. von Holger im seinerzeitigen - und mir bis dato unbekannten - thread) ist daher wohl eher genial als umständlich.

mfg
algol
MC
Senior Member
Senior Member
Posts: 402
Joined: 2003-02-05, 13:53 UTC

Post by *MC »

Hmm, hatte die von Matbal ausprobiert aber alles landete im gleichen Verzeichnis...daher meine Frage. Muss mal die von Holgerk probieren, die Synthax ist ja etwas anders.
algol
Senior Member
Senior Member
Posts: 456
Joined: 2007-07-31, 14:45 UTC

Post by *algol »

MC wrote:Hmm, hatte die von Matbal ausprobiert aber alles landete im gleichen Verzeichnis.
Tja, wenn man die richtige Lösung auf eine falsche - weil missverstandene - Datenstruktur anwendet.. .

Matbal's Methode move_t die Dateien 2 Ebenen hinauf. Das setzt einerseits voraus, dass die der Prozedur zugrundeliegende Liste nur die Dateien der gewünschten Sub-ebenen enthält (bzw. nur diese markiert sind) und anderseits, dass die Struktur von 60 parallelen "dir1_sen" 2 Ebenen darüber auch tatsächlich existiert. Gibt es 2 Ebenen darüber nur eine einzige "dir1", landet als Konsequenz natürlich alles auf einem Haufen.

mfg
algol
Post Reply