Как я могу найти файлы, НЕ соответствующие определенному расширению в Windows XP?

Мне нужно найти и удалить все файлы в подкаталогах, которые не являются.SQL файлы. Я не могу понять, как искать <>.SQL или же !.SQL в поиске Windows.

Большинство решений, которые я видел здесь, - найти конкретные расширения и что-то с ними сделать. Я ищу противоположность.

2 ответа

Решение

Я не знаю, как сделать это из поиска Windows, но из командной строки это:

dir /s /b /a-d | findstr /v /r ".*\.sql"
  • dir / s - рекурсивный список каталогов
  • / b - пустой список, только имена файлов (без вывода информации о размере каталога и т. д.)
  • / ad - фильтровать по атрибутам, а не по каталогам (удалить подкаталоги из списка)
  • | (pipe) - отправить вывод списка каталогов на
  • findstr - утилита для поиска текста
  • /v - только те строки, которые не совпадают
  • /r - использовать регулярные выражения
  • ".*.sql" - совпадать с любым числом раз, после которого следует точка, за которой следует sql.

В Windows 10 (у меня версия 1803) я использую поле поиска в проводнике и набираю

*.* kind:-jpg

найти все файлы, которые не являются jpg в моих папках с изображениями (например, видео и т. д.). Возможно, вам стоит попробовать

*.* kind:-sql

Если вы настаиваете на использовании поиска Windows, у которого нет встроенной возможности или поддержки такой функции, вы можете просто запустить ее следующим образом:

*.a OR *.b OR *.c OR *.d OR *.e OR *.f OR *.g OR *.h OR *.i OR *.j OR *.k OR *.l OR *.m OR *.n OR *.o OR *.p OR *.q OR *.r OR *.t OR *.u OR *.v OR *.w OR *.x OR *.y OR *.z

Следующий поиск исключит все файлы с расширениями.s *, а перечислит все остальные.

Возможно, есть лучший способ сделать это, но это также должно работать.

Другие вопросы по тегам