Dateien anhand einer Liste filtern

German support forum

Moderators: white, Hacker, Stefan2

Post Reply
Guppy
Junior Member
Junior Member
Posts: 3
Joined: 2020-12-08, 07:52 UTC

Dateien anhand einer Liste filtern

Post by *Guppy »

Schönen guten Morgen,

ich beginne gerade damit mich mit dem Total Commander tiefer auseinander zu setzen. Er ist ein wunderbares Stück Technik, dass den Alltag erheblich erleichtert, vielen Dank dafür!

Nun möchte ich folgende Aufgabenstellung lösen:
Ich habe Excel Listen. Diese enthalten in einer Spalte 10-stellige Zahlen, mehrere 100 Stück. Zu diesen Zahlen gibt es einen Ordner, welcher tausende Dateien enthält, die alle nach dem gleichen Schema aufgebaut sind: Alle Dateien sind wie die Zahlen benannt und zu jeder Zahl gibt es eine .pdf und eine .zip-Datei.
Nun möchte ich mir per Commander aus diesen tausenden Dateien nur die anzeigen lassen, die auch in der jeweiligen Liste stehen und diese an einen anderen Ort kopieren.
Optional soll mir angezeigt werden wenn Dateinamen aus der Liste nicht vorhanden sind und welche, aber das ist zweitrangig.

Ist das möglich?

Ich habe bereits über Ctrl+F12 versucht mir einen Filter per Liste zu definieren, fand aber kein "import list" oder ähnliches.
Da ich mir fast sicher bin nicht der erste zu sein der diese Aufgabenstellung zu lösen versucht, habe ich hier im Forum habe ich nach "Excel Filter" "Excel List" und anderem gesucht. Es gab einige Treffer mit RegEx und Code der verschiedenste Probleme angeht, aber da ich keine große Programmierpraxis besitze bringt mich das nicht weiter. Nicht dass es uninteressant wäre, allein mir fehlt der Angriffspunkt, also wie beginnt man und wie geht man vor.

Falls es mit dem Commander nicht möglich sein sollte (was ich fast bezweifle), gibt es Alternativen um die Aufgabenstellung zu lösen?

Vielen Dank und bleibt gesund!
~Guppy
User avatar
Stefan2
Power Member
Power Member
Posts: 4159
Joined: 2007-09-13, 22:20 UTC
Location: Europa

Re: Dateien anhand einer Liste filtern

Post by *Stefan2 »

Hallo und willkommen im Forum Guppy.

Ich hab's mir noch nicht genau durchgelesen, aber schau mal in die "TOTALCMD.INC"-Textdatei,
dort sind alle möglichen TC-internen Befehle aufgelistet, ...für dich könnten diese hier interessant sein:

cm_LoadSelectionFromFile=2032;Read file selection from file
cm_LoadSelectionFromClip=2033;Read file selection from clipboard
(Pro Zeile ein Dateiname, mit oder ohne Erweiterung wie TOTALCMD.*, oder nur Erweiterung wie *.INC)



Diese Befehle wie "cm_LoadSelectionFromClip" kannst du in der TC-eigenen Kommandozeile reinkopieren.



Übers Menü "Hilfe >>> Tasten" kannst du dir dazu ein paar weitere Befehle raussuchen:
ALT+F8 Klappt History-Liste der Kommandozeile auf

und weiter unten bei "Kommandozeile:"
STRG+E Vorherigen Befehl in Kommandozeile kopieren ( >>> d.b.: Vorherigen Befehl wieder verwenden)



Wenn diese Befehle etwas für dich sind, kann man die später mal auf einen Button legen, oder einen eigenen Befehl basteln...


- - -

ich hab's grad' mal ausprobiert:
- cm_LoadSelectionFromClip in die Kommandozeile (vom TC!!!) reinkopieren und Enter drücken (passiert noch nichts)
- einen Dateinamen (auch mit Jokerzeichen wie zB *test*) in die ZwiAb kopieren
- im TC mittels Strg+E den letzten Befehl (cm_LoadSelectionFromClip) wiederaufrufen und Enter drücken: > alles mit TEST im Namen wird selektiert

- - -




HTH?
Guppy
Junior Member
Junior Member
Posts: 3
Joined: 2020-12-08, 07:52 UTC

Re: Dateien anhand einer Liste filtern

Post by *Guppy »

Vielen Dank, das hilft mir sehr und klappt wunderbar!

Gibt es noch eine Möglichkeit herauszufinden ob und wenn ja welche Nummern fehlen? Das muss nicht im gleichen Schritt sein sondern kann auch gerne erst passieren wenn alles kopiert wurde.

Danke!
~Guppy
User avatar
Horst.Epp
Power Member
Power Member
Posts: 6497
Joined: 2003-02-06, 17:36 UTC
Location: Germany

Re: Dateien anhand einer Liste filtern

Post by *Horst.Epp »

Laut Hilfe kannst du im Feld "Suchen in" eine Liste in der folgenden Form eintragen:
@c:\path\filelist.txt
Dann werden die Files/Dirs aus dieser Liste gesucht.
Einfach mal den Hilfe Button drücken wenn du im Suchfeld stehst.
Windows 11 Home x64 Version 23H2 (OS Build 22631.3527)
TC 11.03 x64 / x86
Everything 1.5.0.1373a (x64), Everything Toolbar 1.3.3, Listary Pro 6.3.0.73
QAP 11.6.3.2 x64
Guppy
Junior Member
Junior Member
Posts: 3
Joined: 2020-12-08, 07:52 UTC

Re: Dateien anhand einer Liste filtern

Post by *Guppy »

Das mit @c:\path\filelist.txt hat bei mir nicht zum gleichen Ergebnis geführt, aber eventuell hab ich die Liste nicht korrekt geschrieben. Der Hinweis mit dem Hilfe Button ist gut, danke! Den hatte ich bisher ignoriert.

Für meine Frage herauszufinden ob und wenn ja welche Dateien fehlen, habe ich mir jetzt mit Excel ausgeholfen:

Ein neues Blatt erstellt, die Ausgangsliste hineinkopiert und in TC alle Dateien anhand der Dateiendung sortiert, nur die .pdf markiert und per "Mark" --> "Copy selected names to clipboard" die Namen in einer neuen Spalte eingefügt. Beide Spalten habe ich dann vergleichbar gemacht (also ".pdf" entweder entfernen oder bei der Ausgangsliste hinzufügen (concatenate)) und in beiden Spalten über die bedingte Formatierung alle Unikate markieren lassen. Sind beide Spalten gleich wird nichts markiert, gibt es Unterschiede (irgendwas zu viel oder zu wenig) markiert Excel die
~Guppy
Garion
Junior Member
Junior Member
Posts: 2
Joined: 2020-03-29, 13:16 UTC

Re: Dateien anhand einer Liste filtern

Post by *Garion »

Moin,
der Fred ist zwar nimmer taufrisch, hab aber aktuell das selbe Problem.
Bei mir funktioniert die Suche mit @c:\path\filelist.txt auch nicht. Ebensowenig wie der Befehl cm_LoadSelectionFromClip.
Im Ordner liegen ca 15500 Dateien in 5500 Unterordnern. Die Suchliste hat 580 Einträge, pro Zeile ein Eintrag.
Z.Z. mache ich das mit einer Batchdatei, was aber ätzend langsam ist.
Da der Tread ja schon etwas älter ist, hat sich vielleicht eine elegantere Lösung ergeben?

Edit: Wenn ich in einem Unterordner den Befehl cmd... anwende, funktioniert die Selektion. Wie geht das bei einer angewendeten Suche?
Wenn ich jeden Unterordner aufmachen soll, bringt mir das auch nichts.

VG Gari
User avatar
ghisler(Author)
Site Admin
Site Admin
Posts: 48088
Joined: 2003-02-04, 09:46 UTC
Location: Switzerland
Contact:

Re: Dateien anhand einer Liste filtern

Post by *ghisler(Author) »

Bei mir funktioniert die Suche mit @c:\path\filelist.txt auch nicht.
Was enthält die Listendatei denn? Diese muss:
1. Im Feld "Suchen in" angegeben werden, nicht in "Suchen nach".
2. Muss einen Dateinamen pro Zeile enthalten
3. Falls sie nur den Namen ohne Pfad enthält, wird dieser im Verzeichnis gesucht, in dem sich die Listendatei befindet(!)
4. Es wird nicht rekursiv gesucht. Wenn man also in der Liste z.B. test.txt angibt, wird test.txt nur im Verzeichnis der Listendatei gefunden, nicht in Unterverzeichnissen.
5. Die Liste muss im Format ANSI (aktuelle Codeseite), UTF-8 mit BOM oder UTF-16 mit BOM gespeichert sein.

In der Hilfe ist das eigentlich recht gut erklärt.
Author of Total Commander
https://www.ghisler.com
Garion
Junior Member
Junior Member
Posts: 2
Joined: 2020-03-29, 13:16 UTC

Re: Dateien anhand einer Liste filtern

Post by *Garion »

Jaaaa, das ist ja das Problem - Unterverzeichnisse! Ohne Unterverzeichnisse funtioniert das auch.
Ich habe also gehofft, dass ich nach suchen->anwenden in der Liste suchen kann. Gibt es dafür eine Lösung?
Ich habe es jetzt mit einer Batchdatei gemacht. Das Verzeichnis mit dir/b/s und die Textdatei eingelesen.
Wenn die Suche matcht, wird ein Copy-Befehl gebastelt.

Ist halt nur ätzend langsam. Die Textdatei enthält 580 Zeilen und muss für jede Zeile mit allen Einträgen aus dem dir-Befehl verglichen werden.
Dauerte ne gute Stunde!
User avatar
ghisler(Author)
Site Admin
Site Admin
Posts: 48088
Joined: 2003-02-04, 09:46 UTC
Location: Switzerland
Contact:

Re: Dateien anhand einer Liste filtern

Post by *ghisler(Author) »

Ich habe also gehofft, dass ich nach suchen->anwenden in der Liste suchen kann. Gibt es dafür eine Lösung?
Sie müssen nicht mal auf "Anwenden" klicken, sondern einfach nur rechts über der Resultliste
"F2 Suchen in gefundenen DateienOrdnern" ankreuzen und erneut suchen.

Wenn Listendatei nicht nur Dateinamen sondern auch Ordnernamen enthält, dann wird in den Ordnern gesucht. Man kann das auch mit Wildcards verbinden, z.B.
Dateien\*.txt
sucht nach Textdateien im Unterordner "Dateien".
Author of Total Commander
https://www.ghisler.com
Post Reply