2

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

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

2 ответа2

7

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

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

Если вы настаиваете на использовании поиска 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 *, а перечислит все остальные.

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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .