
wenn ich beispielsweise Dateien einer bestimmten Erweiterung nur über die Verzeichnisliste sehen möchte, kann ich das mit dem folgenden Befehl tun:
DIR *.txt
Und es werden alle Dateien mit .txt
der Erweiterung angezeigt.
Jetzt möchte ich wissen, ob es einen Befehl gibt, mit dem ich bestimmte Erweiterungen ausschließen kann.
Ich möchte beispielsweise keine Dateien mit der Erweiterung sehen .exe
. Wie kann ich das tun?
Antwort1
DIR lässt nicht zu, was Sie versuchen. Allerdings kann DIR zusammen mit FINDSTR dieses Problem lösen.
Beispiel: Im Folgenden werden alle TXT-Dateien in der DIR-Liste ignoriert.
dir | findstr /v /i "\.txt$"
Antwort2
dir /B | find /V ".txt"
Dies würde alle Dateien auflisten und find würde alles herausfiltern, was nicht ".txt" enthält. Es ist bei weitem nicht perfekt, aber vielleicht reicht es :)
Antwort3
Dies hängt von Ihrem Befehlsinterpreter ab.
Microsoft cmd
hat keine solche Möglichkeit, wie Sie aus den anderen Antworten sehen können, in denen die Ausgabe von nachbearbeitet werden muss dir
. Das Tool vonTCC/LE von JP Softwarehat diese Funktion. Es heißtDateiausschlussbereichund wird für das Beispiel in Ihrer Frage folgendermaßen verwendet:
dir /[!*.exe] *
Antwort4
Definieren Sie zu diesem Zweck ein Makro mit DOSKEY
. Ich habe Verzeichnisse ausgeschlossen und Groß- und Kleinschreibung ignoriert – YMMV. Außerdem /B
scheint dies die sinnvollste DIR
Option zum Filtern zu sein /D
und /W
ist für die Aufgabe ungeeignet. Außerdem sind die langen Formate /N
(Standard) und /X
enthalten in einigen Fällen zusätzlichen Text nach dem Dateinamen (für symbolische Links). Probieren Sie es auf der Befehlszeile aus:
DOSKEY FIR=DIR/B/A-D^|FINDSTR /VIE $*
DOSKEY FLIR=DIR/X/A-D^|FINDSTR /VIE $*
FIR
fürgefiltert DIR
, verstanden? :) Und FLIR
für die Langfassung, falls nötig. Dann verwende es so:
fir .jpg
flir jpg
fir "jpg htm"
Letzteres liegt daran, wie FINDSTR
Muster gelesen werden, die als Argumente bereitgestellt werden, wie in dokumentiert /?
. Nur das erste Argument wird als Muster behandelt, weitere werden als Dateinamen interpretiert, auch wenn es in einer Pipe ausgeführt wird.
Ich bevorzuge FINDSTR
gegenüber plain FIND
, da es über einen interessanten /E
Schalter verfügt, der nur am Zeilenende filtert, was beim Filtern nach Dateierweiterung vorzuziehen erscheint (aber auch hier gilt: Ihre Ergebnisse können abweichen).
Das handlicheSS64-Websiteerklärt, wie Makros in einer Datei für die dauerhafte Wiederverwendung eingerichtet werden TXT
. Achtung: ^
Für in einer Textdatei gespeicherte Makros gibt es kein Caretzeichen zum Escapen von Sonderzeichen.
Um die Grundlagen der Funktionsweise von Makros („Konsolenaliase“) zu verstehen, lesen SieEryk Suns kurze Kommentare zu SO.