Windows (11): Wie mehrere Dateien in Ordner gleichzeitig suchen?

1 Antwort

Das müsste mit einer Batch-Datei relativ einfach funktionieren. Also einfach diesen Code hier in eine Datei kopieren und sie suche.cmd oder .bat nennen, dass sie ausführbar ist.

@echo off
for /f "tokens=*" %%i in (liste.txt) do (
    if exist %%i echo %%i
)
pause

Die äußere Schleife läuft durch alle Zeilen der Datei liste.txt. Für jede Zeile wird dann das if ausgeführt, dass prüft, ob die Datei existiert und wenn das der Fall ist, wird die Zeile ausgegeben. Wenn du es direkt über die Konsole (also nicht in einer *.cmd/*.bat Datei) ausführen willst, musst du anstatt %%i nur %i nehmen ... weil Windows halt XD

Also in der Konsole (in dem Ordner Shift + Rechtsklick machen und dann "Powershell-Fenster hier öffnen") würde ich es so eingeben:

for /f "tokens=*" %i in (liste.txt) do @if exist %i @echo %i

(das @ vor dem if und dem echo ist da, dass nur die Ausgabe und nicht der Befehl angezeigt wird)

PS: was meinst du damit, dass du es mit einem OR-Parameter probiert hast? Ich kann mir darunter nichts vorstellen.

Edit:

Wie @iQa1x in den Kommentaren geschrieben hat, kannst du die Ergebnise auch gleich in eine Textdatei schreiben, wenn du das willst. Das wäre bei einer großen Anzahl Dateien evtl. auch minimal schneller. Dazu könnte man das Skript so ändern:

@echo off
if exist gefunden.txt del gefunden.txt
for /f "tokens=*" %%i in (liste.txt) do (
    if exist %%i echo %%i >> gefunden.txt
)
type gefunden.txt
pause

also als erstes wird geprüft, ob die Datei gefunden.txt existiert und sie gelöscht, falls das der Fall ist. In der Schleife werden die gefundenen Dateinamen jetzt direkt in die Datei gefunden.txt geschrieben und zum Schluss diese Datei ausgegeben.


Tilim302 
Beitragsersteller
 11.06.2024, 09:59

Man kann direkt in die eingebaute Windows Suche nach mehreren Dateien suchen, indem man diese mit dem "OR"-Operator verbindet.
Man kann also direkt in das Suchfeld "1.pdf OR 2.pdf OR 3.pdf" schreiben.

1
iQa1x  11.06.2024, 10:24

kleine Ergänzung: Du kannst hinter dem echo %i auch noch >>listeneu.txt anhängen, damit du das Ergebnis wieder in einer Textdatei bekommst und nicht auf der Konsole. >> hängt an, also ggf. listeneu.txt löschen, wenn du es mehrmals machst.

1