Как сделать простой поиск файлов в cmd


131

Я хочу быстро найти файл по его имени или части его имени из командной строки Windows (не Power Shell). Это похоже на открытие проводника и использование поля поиска вверху.

Примечание. dirМожет выполнять поиск на основе строкового шаблона, но не в подкаталогах.

Примечание 2: findstrможет использоваться для поиска токена внутри файлов и имеет флаг рекурсии ; забавно, что более сложную находку можно легко обнаружить ...


Возможный дубликат superuser.com/questions/177234/…
обработка

Ответы:


175

dir /s *foo* поиск в текущей папке и подпапках.

Он находит каталоги, а также файлы.

где / s означает (документация) :

/ s Перечисляет все вхождения указанного имени файла в указанном каталоге и во всех подкаталогах.


У меня еще вопрос, как скопировать найденные документы в другую папку? Большое спасибо
Hong Cheng

@HongCheng Вы можете использовать подстановочный знак с Xcopyпосле проверки вывода с помощью DIRприведенной выше команды, так как используйте то же самое, что и xcopy *foo* c:\Tempдля поиска всех *foo*файлов и копирования их в c:\Tempкаталог
Винод

128
dir /b/s *.txt  

ищет все текстовые файлы в дереве каталогов. Перед использованием просто измените каталог на root, используя

cd/

вы также можете экспортировать список в текстовый файл, используя

dir /b/s *.exe >> filelist.txt

и поиск в рамках использования

type filelist.txt | find /n "filename"

РЕДАКТИРОВАТЬ 1: Хотя эта команда dir работает со старых дней dos, но Win7 добавил что-то новое под названием Where

where /r c:\Windows *.exe *.dll

будет искать exe и dll на диске c: \ Windows, как предлагает @SPottuit, вы также можете скопировать вывод в буфер обмена с помощью

where /r c:\Windows *.exe |clip

просто подождите, пока не появится приглашение, и до тех пор ничего не копируйте.

РЕДАКТИРОВАТЬ 2: если вы выполняете рекурсивный поиск, и вывод большой, который вы всегда можете использовать moreдля включения разбиения -- More --по страницам , он будет отображаться внизу и будет прокручиваться на следующую страницу при нажатии SPACEили перемещается по строке при нажатииENTER

where /r c:\Windows *.exe |more

Для получения дополнительной помощи попробуйте

where/?

5
Вы также можете экспортировать список в буфер обмена, заменив его >> filelist.txtна | clip. Подробнее об использовании | клип .
Sjoerd Pottuit 01

6
При добавлении /bпосле dirнего возвращается только имя файла или путь к файлу (при поиске в нескольких папках) ( b - формат) и никаких сведений о файле и папке. Добавляя /sза dirв с UB-каталоги также будут найдены. Подробнее о команде dir .
Sjoerd Pottuit 01

Не знаю, почему это не принятый ответ. Содержит все, что есть, и многое другое. Спасибо, что разместили это. Хотел бы я проголосовать больше одного раза!
Аврохом Исроэль

1
можно было бы ожидать, что только cd \ или cd \ перейдут в корневой каталог, но похоже, что cd / также выполняет свою работу в Windows 10 - не уверен, с какой версией DOS / Windows это правда,
Джордж Бирбилис,

1
@ Винод Сривастав, очень мило. Объяснены все возможные сценарии.
Кланто Агунтук,


0

Проблема с DIR в том, что он возвращает неправильные ответы. Если вы ищете DOC в папке, используя DIR *.DOCего, вы также получите DOCX . Поиск *.HTMтакже даст HTML и так далее ...


2
Вот почему для этой цели следует использовать WHERE asWhere /R c:\ *.DOC *.HTM
Винод Шривастав

Vinod Srivastav. Я попробовал это сейчас, и ничего себе, эта работа творит чудеса. :) Я буду реализовывать это в своих партиях.
Hobbe Lundahl

0

Вы можете искать в Windows с помощью DOS и GUI проводника.

DOS:

1) DIR

2) ICACLS (ищет файлы и папки, чтобы установить для них ACL)

3) cacls ............................................... ...

2) пример

icacls c: * ntoskrnl *. * / grant system: (f) / c / t, затем используйте PMON из sysinternals, чтобы отслеживать, к каким папкам отказано в доступе. Результат содержит

путь доступа содержит ваш диск

имя процесса - explorer.exe

это были фильтры, которые вы должны применить

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.