Ausschließen von Dateien mit einer bestimmten Erweiterung mit dem DIR-Befehl in der Windows-Befehlszeile

Ausschließen von Dateien mit einer bestimmten Erweiterung mit dem DIR-Befehl in der Windows-Befehlszeile

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 .txtder 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 cmdhat 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 /Bscheint dies die sinnvollste DIROption zum Filtern zu sein /Dund /Wist für die Aufgabe ungeeignet. Außerdem sind die langen Formate /N(Standard) und /Xenthalten 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 $*

FIRfürgefiltert DIR, verstanden? :) Und FLIRfür die Langfassung, falls nötig. Dann verwende es so:

fir .jpg
flir jpg
fir "jpg htm"

Letzteres liegt daran, wie FINDSTRMuster 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 FINDSTRgegenüber plain FIND, da es über einen interessanten /ESchalter 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.

verwandte Informationen