Як зробити простий пошук файлів у cmd


131

Я хочу швидко шукати файл із зазначенням його імені або частини його імені з командного рядка Windows (не оболонки живлення). Це схоже на відкриття провідника та використання вікна пошуку вгорі.

Примітка: dir можна шукати на основі шаблону рядків, але він не буде шукати у підкаталогах.

Примітка2: findstrможе використовуватися для пошуку маркера всередині файлів і має прапор рекурсивності; смішно, що складнішу знахідку легко виявити ...


Можливий дублікат superuser.com/questions/177234/…
обробляти

Відповіді:


175

dir /s *foo* здійснює пошук у поточній папці та підпапках.

Він знаходить каталоги, а також файли.

де / s засоби (документація) :

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


У мене є ще одне питання, як скопіювати знайдені документи в іншу папку? Дякую багато
Гонг Ченг

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

128
dir /b/s *.txt  

шукає весь файл txt у дереві каталогів. Перед використанням просто змініть каталог на корінь , використовуючи

cd/

ви також можете експортувати список у текстовий файл, використовуючи

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

і пошук у межах використання

type filelist.txt | find /n "filename"

EDIT 1: Хоча ця команда dir працює з старих dos-днів, але Win7 додав щось нове під назвою Where

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

буде шукати exe & dll на диску c: \ Windows, як запропонував @SPottuit, ви також можете скопіювати вихід у буфер обміну за допомогою

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

просто зачекайте повернення підказки і не копіюйте нічого до цього часу.

EDIT 2: Якщо ви шукаєте рекурсивно і результат великий, який ви завжди можете використовувати moreдля активації пейджингу, він відображатиметься -- More --внизу та буде прокручуватися до наступної сторінки, коли ви натискаєте SPACEчи переміщуєте рядок за рядком при натисканніENTER

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

Для отримання додаткової допомоги спробуйте

where/?

5
Ви також можете експортувати список у буфер обміну, замінивши >> filelist.txtна | clip. Детальніше про використання | кліп .
Sjoerd Pottuit

6
Додавши /bза dirсписком лише ім'я файлу або шлях файлу (якщо шукати в декількох папках) повертається ( b - це формат) і відсутні дані про файл і папку. Додаючи /sза dirв с UB-каталоги також будуть знайдені. Більше інформації про команду dir .
Sjoerd Pottuit

Не знаю, чому це не прийнята відповідь. Містить все, що є, і багато іншого. Дякуємо, що опублікували це. Бажаю, щоб я міг подати заявку не раз!
Avrohom Yisroel

1
можна було б очікувати, що в кореневій каталозі буде змінено лише cd \ або cd \, але, схоже, CD / також виконує роботу в Windows 10 - не впевнений, оскільки для якої версії DOS / Windows це правда
Джордж Бірбіліс

1
@Vinod Srivastav, дуже приємно. Всі можливі сценарії пояснюються.
Кланто Агунтук


0

Проблема з DIR полягає в тому, що він поверне неправильні відповіді. Якщо ви шукаєте DOC у папці, використовуючи DIR *.DOCйого, ви також отримаєте DOCX . Пошук *.HTMтакож дасть HTML та інше ...


2
Ось чому варто використовувати WHERE як Where /R c:\ *.DOC *.HTMдля своєї мети
Вінод Срівастав

Вінод Срівастав. Я спробував це зараз і нічого, ця робота дивується. :) Я реалізую це на своїх партіях.
Hobbe Lundahl

0

Ви можете шукати у Windows за допомогою DOS та Explorer GUI.

DOS:

1) DIR

2) ICACLS (шукає файли та папки, щоб встановити на них ACL)

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

2) приклад

icacls c: * ntoskrnl *. * / грант-система: (f) / c / t, потім використовуйте PMON від sysinternals для контролю того, яким папкам заборонено доступ. Результат містить

шлях доступу містить ваш диск

Назва процесу - explorer.exe

це були фільтри, які ви повинні застосувати

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.