Исключение файлов определенного расширения с помощью команды DIR в командной строке Windows

Исключение файлов определенного расширения с помощью команды DIR в командной строке Windows

Если я хочу увидеть, например, файлы определенного расширения только с помощью списка каталогов, я могу сделать это с помощью команды:

DIR *.txt 

И он показывает все файлы с .txtрасширением.
Теперь я хочу узнать, есть ли команда, с помощью которой я могу исключить определенные расширения?
Например, я не хочу видеть ни один файл с расширением .exe, как я могу это сделать?

решение1

DIR не позволит сделать то, что вы пытаетесь сделать. Однако DIR вместе с FINDSTR могут решить эту проблему.

например, следующий код игнорирует все файлы .txt в списке DIR.

dir | findstr /v /i "\.txt$" 

решение2

dir /B | find /V ".txt"

Это выведет список всех файлов, а find отфильтрует все, что не содержит ".txt". Это далеко от совершенства, но, возможно, этого достаточно :)

решение3

Это зависит от вашего интерпретатора команд.

У Microsoft cmdнет такой возможности, как вы можете видеть из других ответов, где нужно постобрабатывать вывод dir. Однако инструмент отTCC/LE от JP Softwareимеет эту функцию. Это называетсядиапазон исключения файлови используется следующим образом для примера в вашем вопросе:

каталог /[!*.exe] *

решение4

Для этого определите макрос с помощью DOSKEY. Я исключил каталоги и проигнорировал регистр – YMMV. Также, /Bкажется, это наиболее разумный DIRвариант фильтрации, /Dи /Wне подходит для задачи, и длинные форматы /N(по умолчанию) и /Xсодержащие, в некоторых случаях, дополнительный текст после имени файла (для символических ссылок). Проверьте это в командной строке:

DOSKEY  FIR=DIR/B/A-D^|FINDSTR /VIE $*
DOSKEY FLIR=DIR/X/A-D^|FINDSTR /VIE $*

FIRдляотфильтровано DIR, понял? :) И FLIRдля длинной версии, если нужно. Тогда используйте ее так:

fir .jpg
flir jpg
fir "jpg htm"

Последнее связано с тем, как FINDSTRсчитывает шаблоны, предоставленные в качестве аргументов, как описано в /?. Только первый аргумент рассматривается как шаблон, дополнительные аргументы интерпретируются как имена файлов, даже при запуске в конвейере.

Я предпочитаю FINDSTRего, а не просто, FINDпотому что у него есть необычный /Eпереключатель, который фильтрует только в конце строки, что кажется предпочтительным при фильтрации по расширению файла (но опять же, YMMV).

УдобныйСайт SS64объясняет, как настроить макросы в TXTфайле для постоянного повторного использования. Будьте осторожны, нет каретки ^для экранирования специальных символов для макросов, сохраненных в текстовом файле.

Чтобы понять основы работы макросов («консольных псевдонимов»), прочтитеКраткие комментарии Эрика Сана о SO.

Связанный контент