Mehrere Dateien gleichzeitig suchen + anschliessend kopieren

German support forum

Moderators: white, Hacker, Stefan2

User avatar
blumba
Junior Member
Junior Member
Posts: 4
Joined: 2015-03-16, 14:16 UTC
Location: Luxemburg

Mehrere Dateien gleichzeitig suchen + anschliessend kopieren

Post by *blumba »

Hallo,

Ich möchte in einer großen Datensammlung eine Liste von sehr vielen Dateien suchen (Liste mit exakten Dateinamen), um sie anschliessend in ein eigenes Verzeichnis zu kopieren.

Gibt es zu diesem Zweck ein Plugin, dem ich einfach eine Liste (Textdatei oder wasauchimmer) geben kann und das dann nach den Dateinamen in der Liste sucht ?

Wieviele Dateien kann Total Commander maximal "finden" ?

Gruß

Blumba
User avatar
milo1012
Power Member
Power Member
Posts: 1158
Joined: 2012-02-02, 19:23 UTC

Post by *milo1012 »

TC-Hilfe wrote:Suchen in: Geben Sie hier einen oder mehrere Anfangspfade für die Suche an, getrennt durch ";". Sie können den Anfangspfad alternativ auch in Suchen nach angeben. Start der Suche auch innerhalb eines Archivs möglich.
Neu: Sie können auch eine Textdatei (ANSI; UTF-8 oder UTF-16, letztere 2 mit BOM) mit einer Liste der zu durchsuchenden Dateien und Verzeichnisse angeben, in der Form @c:\Pfad\Dateiname.txt. Die Textdatei muss einen Datei-/Verzeichnisnamen pro Zeile enthalten, entweder als absoluten Pfad, oder relativ zum Verzeichnis der Listendatei. In der Listendatei dürfen nun auch die Platzhalter * und ? verwendet werden.
Beispielliste: Beschreibung
c:\testdir\ Sucht in "c:\testdir" nach Dateien definiert in "Suchen nach"
c:\testdir\*.txt *.doc Sucht in "c:\testdir" nach txt- und doc-Dateien
c:\testdir\<RegEx Sucht in "c:\testdir" mit dem regulären Ausdruck
c:\testdir\dateiname.txt Sucht nur nach "dateiname.txt" in "c:\testdir"
Neu: Geben Sie vor dem Speichern ein '>'-Zeichen als Suchort an, damit beim Laden der Suchort NICHT geladen und ersetzt wird (nützlich um nach einem bestimmten Dateinamen im aktuellen Verzeichnis zu suchen).
Was die maximale Anzahl angeht kann ich nichts sagen, aber so wie ich das sehe gibt es kein Limit,
erfahrungsgemäß wird es aber jenseits von 10000 Dateien langsam.
TC plugins: PCREsearch and RegXtract
User avatar
Stefan2
Power Member
Power Member
Posts: 4159
Joined: 2007-09-13, 22:20 UTC
Location: Europa

Re: Mehrere Dateien gleichzeitig suchen

Post by *Stefan2 »

Hallo Blumba, willkommen im Forum.
blumba wrote:Ich möchte in einer großen Datensammlung
eine Liste von sehr vielen Dateien suchen (Liste mit exakten Dateinamen),
um sie anschliessend in ein eigenes Verzeichnis zu kopieren.
Sollen alle Dateien in EIN gemeinsames Verzeichnis kopiert werden?
(Was wäre dann bei Namensgleichheit?)


- - -

Wie wäre es mit einem einfachen Skript?

Pseudo code:
Für jede Zeile in ( C:\Ordner\Liste.txt ) kopiere ZEILE nach NeuesVerzeichnis

Wie beim TC: [face=timesnewroman]"Die Textdatei muss einen Datei-/Verzeichnisnamen pro Zeile enthalten"[/face]


Falls ein Skript von dir gewünscht wird, bräuchten wir noch nähere Angaben:
- Beispielzeilen aus deiner Liste
- Beispiel Ziel-Ordner

 
User avatar
Lefteous
Power Member
Power Member
Posts: 9535
Joined: 2003-02-09, 01:18 UTC
Location: Germany
Contact:

Post by *Lefteous »

2blumba
Probier es mal damit:
http://www.totalcmd.net/plugring/file.html

Das Plugin hat ein Feld "file.Ist in Liste". Diese Datei muss vorher entsprechend editiert werden.
User avatar
blumba
Junior Member
Junior Member
Posts: 4
Joined: 2015-03-16, 14:16 UTC
Location: Luxemburg

Wow schonmal danke für die Hilfe, kriegs aber noch nicht hin

Post by *blumba »

Guten Morgen,

Ich möchte eine Liste erstellen (zB. Textdatei photos.txt, die folgendermassen aussehen wird:

40356521P.jpg
42163651P.jpg
...(usw)

für tausende verschiedene, einzigartige Dateinamen. Jetzt möchte ich ein Verzeichnis mit zig Unterverzeichnissen nach diesen Dateien durchsuchen, es wäre schön wenn ich mir die Dateien dann in einem der Fenster anschauen kann, so wie es bei der Suche üblich ist, wenn man danach auf "Anwenden" clickt, sodass ich anschliessend die gefundenen Dateien in ein bestimmtes Verzeichnis kopieren kann. Es gibt keine doppelten Dateinamen, daher ist das völlig unproblematisch.

Meine Fragen/Kommentare sind jetzt:

1) @milo1012: Wenn ich es richtig verstehe, meinst Du eine Funktion mit der man eine Textdatei mit Liste von zu DURCHsuchenden Dateien angeben kann. Ich möchte die zu suchenden Dateien in der Liste angeben (also suchen NACH, nicht suchen IN). Wenn ich es nicht richtig verstanden habe, erklär mir bitte ahand meines Beispiels wie die Liste aussehen muss (+Format) und in welchem Feld ich sie angeben muss... danke.

2) @Stefan2: Gerne her mit dem Skript ;) Beispiel für die Liste siehst Du oben, der zu durchsuchende Ordner wäre zB. p:\PhotosI\ (Mit zig Unterordnern, und der Zielordner zum kopieren der gefundenen Dateien wäre p:\PhotosII\ . Teil mir bitte auch noch mit, wie genau die Liste aussehen sollte und formatiert werden muss. Danke

3) Lefteous: Wie kann ich dein Plugin installieren ? Gibt es eine detaillierte Beschreibung ? Danke
User avatar
milo1012
Power Member
Power Member
Posts: 1158
Joined: 2012-02-02, 19:23 UTC

Re: Wow schonmal danke für die Hilfe, kriegs aber noch nicht

Post by *milo1012 »

blumba wrote: Wenn ich es richtig verstehe, meinst Du eine Funktion mit der man eine Textdatei mit Liste von zu DURCHsuchenden Dateien angeben kann. Ich möchte die zu suchenden Dateien in der Liste angeben (also suchen NACH, nicht suchen IN). Wenn ich es nicht richtig verstanden habe, erklär mir bitte ahand meines Beispiels wie die Liste aussehen muss (+Format) und in welchem Feld ich sie angeben muss... danke.
Nimm die Datei die du jetzt hast, also die keine Pfade enthält,
und bearbeite nun mit einem Editor deiner Wahl mit Suchen und Ersetzen (*):

Code: Select all

<zu suchen in>*<das was bisher da stand>
also z.B. stand vorher

Code: Select all

file1.txt
fileXXX.jpg
dann sollte sie jetzt beinhalten

Code: Select all

c:\dir1\*file1.txt
c:\dir1\*fileXXX.jpg
usw. wenn du in "c:\dir1" suchen willst.

Jetzt den Ort dieser Listendatei in TC laden,
indem du bei "Suchen in" einträgst:

Code: Select all

@c:\woauchimmer\listendatei.txt
"Suchen nach" lässt du leer.




(*)
in Notepad2mod würdest du z.B. nehmen:
Search String

Code: Select all

.*
Replace with

Code: Select all

<zu suchen in>\*\0
[x] Regular Expression search
TC plugins: PCREsearch and RegXtract
User avatar
blumba
Junior Member
Junior Member
Posts: 4
Joined: 2015-03-16, 14:16 UTC
Location: Luxemburg

Läuft

Post by *blumba »

Vielen Dank für die ausführliche Hilfe milo1012, klappt soweit wunderbar !

:D

Mich würde trotzdem noch das Fileplugin interessieren @ Lefteous.

;)
User avatar
Stefan2
Power Member
Power Member
Posts: 4159
Joined: 2007-09-13, 22:20 UTC
Location: Europa

PowerShell: Finde Dateien aus Textliste und kopiere sie

Post by *Stefan2 »

blumba wrote:2) @Stefan2: Gerne her mit dem Skript ;)
PowerShell to the rescue:

Vorarbeiten für meinen Test:

Code: Select all

 

# Starte PowerShell
# Navigiere zu " C:\Temp"
# kopiere diesen Befehl in die PoSh-console:

# Step 1) create photos.txt file with filenames on each line:
 1..9| ForEach{$out=""}{$Name=((Get-Random).toString()+".jpg"); $out+="$name`r`n"}{out-file -filepath photos.txt -inputobject $out}
  
# photos.txt:
# 536890584.jpg
# 327180028.jpg
# 928576273.jpg
# 1255905254.jpg
# .... usw


# Jetzt ein paar Ordner erstellen und Dateien mit Namen aus der photos.txt -Liste erstellen, dann Step 2 testen:


# Step 2) search for files:
 $LIST=Get-Content photos.txt ;
 dir -rec -inc *.jpg|ForEach{if($LIST -contains $_.name){"`#found: $_, will copy it now to p:\PhotosII\$($_.Name)"}}
#found: C:\TEMP\PS\date\04\928576273.jpg, will copy it now to p:\PhotosII\928576273.jpg
#found: C:\TEMP\PS\date\09\Archiv\sub\folder\327180028.jpg, will copy it now to p:\PhotosII\327180028.jpg



Die aktuelle Anfrage könnte daher so gelöst werden:

Code: Select all

# Step 3) search for files and copy to PhotosII:

# Starte PowerShell
# Navigiere zu " p:\PhotosI"
# kopiere diesen Befehl in die PoSh-console:

 $LIST=Get-Content photos.txt ;

 dir -recurse -include *.jpg | ForEach{if($LIST -contains $_.name){Copy $_ -Destination "P:\PhotosII" -WhatIf}}

# oder z.B. gleich umbenennen:
# dir -recurse -include *.jpg | ForEach{if($LIST -contains $_.name){Copy $_ -Destination "P:\PhotosII\$($_.Name+".Kopie.JPG")" -WhatIf}}



# Dieses "-WhatIf" ist die letzte Sicherung vorm wirklichen Kopieren. 
# Wenn die Ausgabe "gut aussieht", kann es zum Scharfschalten entfernt werden.


 
User avatar
Lefteous
Power Member
Power Member
Posts: 9535
Joined: 2003-02-09, 01:18 UTC
Location: Germany
Contact:

Post by *Lefteous »

2blumba
Wie kann ich dein Plugin installieren ? Gibt es eine detaillierte Beschreibung ? Danke
Installation über Doppelklick und dann den Anweisungen auf dem Bildschirm folgen.

Nach der Installation kann man dann Textdateien anlegen, die dem Muster FileList_* entsprechen. Diese Dateien müssen sich im gleichen Ordner wie die Wincmd.ini befinden. In einer solchen Textdatei kann man dann die Dateinamen eintragen.

Möglicherweise muss man den TC danach neustarten, damit es funktioniert.
User avatar
blumba
Junior Member
Junior Member
Posts: 4
Joined: 2015-03-16, 14:16 UTC
Location: Luxemburg

Danke

Post by *blumba »

Wow, Total Commander ist überragend.

Und das Forum hier genauso, besten Dank Euch drei !
Zendo
Power Member
Power Member
Posts: 634
Joined: 2006-10-26, 11:16 UTC

Post by *Zendo »

2Lefteous

Hallo, ich mache irgendwas falsch. Auch ich würde gerne mit deinem Tool / Plugin nach mehreren Dateien suchen.

Nur was muss ich auswählen und eintragen...

Ich füge mal ein Bild mit ein... [img]http://img5.fotos-hochladen.net/uploads/tcayn1hjx0dg.png[/img][/img]

sind die Eigenschaften und OP so richtig? In dem Wert kommt sicher die zu suchende Datei rein oder?
User avatar
Lefteous
Power Member
Power Member
Posts: 9535
Joined: 2003-02-09, 01:18 UTC
Location: Germany
Contact:

Post by *Lefteous »

2WinXP Commander
Was man auf deinem Bild nicht sieht, ist ob dort eine Einheit auswählbar ist. Ist dies nicht der Fall, dann befindet sich keine Datei "FileList_* im Ordner "Fille" unterhalb des Ordners, indem sich die Wincmd.ini befindet. Wenn es dann immer noch nicht, TC neu starten.
Ich weiß, das ist alles viel zu umständlich, aber es geht halt mit den derzeitigen Möglichkeiten, die derzeit in TC existieren, kaum besser.
Zendo
Power Member
Power Member
Posts: 634
Joined: 2006-10-26, 11:16 UTC

Post by *Zendo »

2Lefteous

Vielen dank das hat hervorragen funktioniert.

Mein Fehler war das ich den * mit geschrieben hatte,also so FileList_* und nicht so FileList_.txt.

Jetzt noch eine bitte, was muss ich tun / eingeben wenn ich "nur" nach mehrere Wörtern gleichzeitig suchen möchte...

z.B nach der, die, oder das usw.

Egal ob das in einem Titel (Musik/mp3) oder ein Namen zu einer Bilddatei ist. z.B heißt ein Bild die Kirche... ich möchte dann nach "die" suchen.

Ich hoffe ich hab mich verständlich machen können.

Die FileList_.txt

könnte ja dann so aus sehen

Die

Der

Das

Oder usw.

Nur da gehen ja nur ganz explizite Dateien min Endung
User avatar
Lefteous
Power Member
Power Member
Posts: 9535
Joined: 2003-02-09, 01:18 UTC
Location: Germany
Contact:

Post by *Lefteous »

Ja mit "Ist in Liste" gehen nur ganze Namen. Das lohnt sich eigentlich nur, wenn man öfters in einer großen, statischen Liste nach Dateien sucht.
Für die Artikelsuche würde ich einfach die eingebauten Felder nutzen. Also entweder:
tc.name contains 'der' or tc.name contains 'die' or tc.name contains 'das'
oder eben file.name contains SUCHBEGRIFF or ...
oder ganz profan: *der*;*die*;*das* direkt im Suchfeld eingeben
Zendo
Power Member
Power Member
Posts: 634
Joined: 2006-10-26, 11:16 UTC

Post by *Zendo »

Vielen Dank noch mal :)

Deine "Ist in Liste" hilft mir sehr,
denn ich benutze sie für Dateien die ich nicht auf mein Rechner haben möchte...die aber mehr oder wenigen immer mal wieder auf mein Rechner kommen und unnötigen Platz kosten.

Das andere werde ich mal probieren :)
Post Reply