Dateien aus Unterordnern ein paar Ebenen nach oben moven?
Moderators: Hacker, Stefan2, white
Dateien aus Unterordnern ein paar Ebenen nach oben moven?
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!
d:\files\dir1\dir2\dir3\*.*
nach
d:\files\dir1\*.*
Geht das irgendwie per batch oder so? Danke!
- ghisler(Author)
- Site Admin
- Posts: 50746
- Joined: 2003-02-04, 09:46 UTC
- Location: Switzerland
- Contact:
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
https://www.ghisler.com
Sowas lässt sich auch mit nem Batchskript lösen:
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: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
Code: Select all
@echo off
for /f %%i IN (dirlist.txt) DO (
REM move %%i*.* %~dpi..\..\*.*
echo move %%i*.* -^> %~dpi..\..\*.*
)
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\
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
Ryzen 5 2600, 16 GiB RAM, ASUS Prime X370-A, Win7 x64
Plugins: Services2, Startups, CertificateInfo, SignatureInfo, LineBreakInfo - Download-Mirror
ä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)
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
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 kamMoon wrote:@Dalai
Beim Schreiben der Auswahl in die Datei erhalte ich
\dir1\
\dir2\
\dir3\
\dir4\
etc.
Beim Ausführen bekomme ich die Meldung Syntaxfehler.

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
Ryzen 5 2600, 16 GiB RAM, ASUS Prime X370-A, Win7 x64
Plugins: Services2, Startups, CertificateInfo, SignatureInfo, LineBreakInfo - Download-Mirror
-
- Junior Member
- Posts: 11
- Joined: 2004-09-11, 02:46 UTC
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.
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.

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 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
Moon wollte ja vonMC 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...
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
Tja, wenn man die richtige Lösung auf eine falsche - weil missverstandene - Datenstruktur anwendet.. .MC wrote:Hmm, hatte die von Matbal ausprobiert aber alles landete im gleichen Verzeichnis.
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