Как быстро найти файл в Windows с помощью cmd ?
Приветствую вас, сейчас мы научимся, как найти файл или папку в Windows без помощи неважно работающего проводника системы, и будем использовать для этого либо команды в MS-DOS, либо с помощью его эмулятора – консоли команд cmd. У такого способа есть лишь один недостаток, который связан лишь с беспричинной боязнью пользователей перед текстовым интерфейсом работы с системой и сложившейся привычкой к графическому. Однако, по сути в обоих случаях нам всё равно приходится вручную набирать условия поиска потерявшегося файла или пакета файлов, а здесь без «вседозволенности» консоли просто не обойтись. От команд давно почившей операционной системы MS-DOS не скроется ничего, и cmd способна без труда открыть путь ко всем документам и директориям, которые находятся в чреве Windows .
Что нужно, чтобы найти файл в Windows ?
Нам нужно имя файла и программу, которая его создала либо умеет читать.
Итак, если уверены, что файл просто «потерялся», вам нужно через консоль оказаться в корневой папке системы. Для этого введём пару символов:
cd
и вы там. Если вы точно знаете имя файла или документа, это не проблема даже для поисковика Windows. Но есть ведь задача и посложнее…
А теперь, представьте, что вам нужно найти файл или документ, имя которого вы и толком-то не помните. Допустим, в названии что-то было про «установку». То-ли «установкА», то-ли «установкИ», то-ли «установОК»… Не проблема – так Windows и спросите:
dir *установ*.* /s
где
- dir – команда отобразить список файлов и директорий
- * — что-то там… (ну забыл я, мол)
- . – расширение файла (текстовый, музыка, PDF-ка, фильм и т.п.)
- /s – команда на поиск в текущей директории и подкаталогах.
Результаты через пару мгновений будут выглядеть примерно так:
На этот же манер можно найти файл, если вы знаете, какое расширение он имеет, т.е. какой программой открывается. Командой
dir *.xls /s
или
dir *.docx /s
можно будет найти документы Exel и Word. Присмотритесь к примерам разновидностей команд (вариаций здесь множество):
dir *.txt *.doc
отобразит в одной выдаче документы с расширениями .doc и .txt
dir /p
команда с этим атрибутом (в отличие от /s) поможет. если результатов будет множество, а вам удобнее просматривать их с небольшим интервалом.
dir /on
выдаст список файлов и директорий в алфавитном порядке
dir /s |find "i" |more
отображает все папки и их содержимое, включая время создания, количество файлов в каждой, сколько места занимают.
Успехов
Please try the following commands
List all files in the current directory & subdirectories
dir /b/s *.txt
The above command searches for all txt file in the directory tree.
But as windows is started naming directories as
.nuget
,.vscode
it also comes with the command above.
In order to avoid this and have a clean list use /a:-d
filter as
dir /a:-d /b/s
Before using it just change the directory to root using
cd/
There is one more hacky command to do the same
for /r %f in (*) do @echo %f
Note: If you miss the
@echo
part in the command above it will try to execute all the files in the directories, and the/r
is what making it recursive to look deep down to subdirectories.
Export result to text file
you can also export the list to a text file using
dir /b/s *.exe >> filelist.txt
and search within using
type filelist.txt | find /n "filename"
If you are looking for files with special attributes, you can try
List all Hidden Files
dir /a:h-d /b/s
List all System Files
dir /a:s-d /b/s
List all ReadOnly Files
dir /a:r-d /b/s
List all Non Indexed Files
dir /a:i-d /b/s
If you remove the -d
from all commands above it will list directories too.
Using where
in windows7+:
Although this dir command works since the old dos days but Win7 added something new called Where
where /r c:Windows *.exe *.dll
will search for exe & dll in the drive c:Windows as suggested by @SPottuit you can also copy the output to the clipboard with
where /r c:Windows *.exe |clip
just wait for the prompt to return and don’t copy anything until then.
Page break with more
If you are searching recursively and the output is big you can always use more
to enable paging, it will show -- More --
at the bottom and will scroll to the next page once you press SPACE
or moves line by line on pressing ENTER
where /r c:Windows *.exe |more
For more help try
where/?
Содержание
- Вариант 1: Расположение файла неизвестно
- Способ 1: «Командная строка»
- Способ 2: «PowerShell»
- Вариант 2: Получение пути к файлу
- Способ 1: Контекстное меню
- Способ 2: Свойства объекта
- Способ 3: Пакетный режим
- Вопросы и ответы
Вариант 1: Расположение файла неизвестно
Чтобы найти файл на компьютере, не обязательно запоминать его расположение — достаточно помнить его название или даже часть названия. Также при поиске файлов на компьютере можно использовать такие данные, как расширение, размер, дату создания и прочие атрибуты. Основных способов поиска два: возможностями самой Windows 10 и средствами сторонних приложений.
Приложений для поиска файлов существует достаточно много, среди них имеются как бесплатные, так и коммерческие. Наиболее быстрыми из них являются те, которые выполняют поиск по файловой таблице, куда заносятся имена всех объектов файловой системы. Такой подход обеспечивает почти мгновенный поиск без индексации.
Штатные средства поиска также могут быть эффективными, если уметь ими правильно пользоваться. В Windows 10 для поиска файлов и папок можно использовать функционал «Проводника», классической «Командной строки» и консоли «PowerShell».
Способ 1: «Командная строка»
Если известно название файла и буква диска, на котором он предположительно находится, найти его можно с помощью «Командной строки».
- Запустите консоль «cmd» из поиска Windows или другим известным способом.
- Выполните команду
dir /a /s c:file.name
, где file.name – имя файла с расширением, например text.docx.
Если файл имеется на диске, команда выведет в консоль путь к нему.
Способ 2: «PowerShell»
Более широкими возможностями обладает консоль «PowerShell», способная искать файлы по разным параметрам. Далее приведен самый простой пример – поиск по имени и расширению.
- Запустите «PowerShell» из контекстного меню кнопки «Пуск».
- Сформируйте и выполните команду
Get-ChildItem -Path C: "file.name" -Recurse -Force -ErrorAction SilentlyContinue
, где file.name – имя файла с расширением, а C: — буква диска, на котором выполняется поиск.
Результат будет выведен в консоль.
Подробнее: Способы поиска файлов в Windows 10
Вариант 2: Получение пути к файлу
Если нужно получить пути файлов, расположение которых уже известно, либо узнать расположение файла по его ярлыку, достаточно будет средств «Проводника». Способы, в свою очередь, можно использовать разные.
Способ 1: Контекстное меню
В расширенном контекстном меню файлов, папок и ярлыков имеется опция копирования полного пути к объекту. Зажмите на клавиатуре клавишу Shift, после чего кликните по файлу правой кнопкой мыши. Выберите опцию «Копировать как путь» — путь к файлу будет скопирован в буфер обмена.
Способ 2: Свойства объекта
Если нужно определить месторасположение файла по его ярлыку, откройте «Свойства» данного ярлыка и посмотрите, что указано в поле «Объект». Это и будет путь файла в системе. В поле «Рабочая папка» указывается путь к папке, в которой искомый файл находится.
Обратите также внимание на кнопку «Расположение файла» — если ее нажать, будет открыт каталог с целевым файлом.
Способ 3: Пакетный режим
Если нужно получить пути к группе файлов, расположенных в конкретной папке, воспользуйтесь средствами той же консоли «PowerShell». Запустите приложение и выполните в нем команду Get-Childitem -File -Path D:Folder | Out-File D:filelist.txt
.
В этой команде имеется два пути: D:Folder – путь папке с файлами, пути которых нужно получить, и D:filelist.txt – путь к автоматически создаваемому текстовому логу, куда «PowerShell» запишет данные. Заметьте, что команда получает пути только в родительской папке, поэтому если каталог нужно исследовать рекурсивно, сразу перед ключом -File
в команду нужно добавить ключ -Recurse
.
Еще статьи по данной теме:
Помогла ли Вам статья?
Примеры, когда пользователь помнит название файла, но забывает, куда именно он его положил, не такая уже и редкость. Найти затерявшийся среди множества других файлов нужный файл не составляет особой проблемы, другое делo, если файл нужно найти быстро. А это не всегда возможно, например, по причине отключенной индексации. В таких случаях могут выручить сторонние утилиты типа MasterSeeker, которые ищут по файловой таблице, но можно обойтись и без них.
С задачей быстрого поиска неплохо справляются командная строка и PowerShell.
Начнем с классической командной строки.
Для поиска в консоли CMD используется две основные команды: where и dir.
Способ с использованием первой команды не слишком быстрый, но все же он более быстр, чем поиск с использованием средств Проводника.
Выглядит команда следующим образом:
where /R C: log54.txt
В данном примере ищется файл log54.txt на диске C, поиск выполняется рекурсивно, в случае обнаружения файла команда возвращает полный к нему путь. Если файл отсуствует в выбранном расположении, команда вернет сообщение «не удается найти файлы по заданным шаблонам».
Поддерживается поиск с использованием замещающих символов, например, команда where /R C: *g54*.* станет искать файлы, в имени которых имеется «g54» независимо от расширения.
Быстрее where работает команда dir, выводящая не только путь к каталогу с искомым файлом, но и количество объектов в каталоге.
Выглядит команда так:
dir /a /s C:log54.txt
Обратите внимание, что между буквой диска, на котором выполняется поиск, и имением файла пробел не добавляется.
Как и в случае с where, поддерживается использование замещающих символов.
Поиск в PowerShell
Для поиска объектов файловой системы в PowerShell предусмотрен командлет ChildItem с ключом Recurse.
В случае поиска по системному диску в команду рекомендуется добавить специальный ключ, гасящий вывод ошибок доступа к системным файлам.
Вот так:
Get-ChildItem -Path C: «log54.txt» -Recurse -Force -ErrorAction SilentlyContinue
В случае успеха команда возвращает путь к папке с файлом, если файл не найден, ничего выведено не будет.
Разумеется, можно использовать подстановочные символы – звездочки в имени и расширении.
Как и при работе с командной строкой, поиск в PowerShell может занять много времени, но как правило, результат не заставляет себя ждать.
Загрузка…
Приветствую, уважаемые участники проекта Habrahabr. Сегодня я хочу рассказать вам как выполнить поиск файлов в интерпретаторе командной строки Windows — cmd.exe. Я не буду вам писать такую команду, как dir или find. Мы сегодня рассмотрим другой, более лучший способ.
Давайте представим такую ситуацию: «Вы начинающий программист, и вам стоит задача: Сделать импорт всех (или некоторых файлов) из определенного каталога. Причем, чтобы можно было искать любые файлы, с любым названием и расширением. При этом импорт должен быть помещен в один файл. С сохранением всех путей файлов, построчно».
Вот как будет выглядеть данный код:
@Echo Off & Title Seacher File
Echo Status oparations: In Progress...
For /R D: %%i In (*.doc) Do (
If Exist %%i (
Echo %%i >> D:Resault.doc
)
)
Cls & Echo Status Oparations: Ended Seacher
Pause & Start D:Resault.doc & Echo On
А теперь, давайте разберем, что он делает!
Первая строка кода:
@Echo Off & Title Seacher File
Скрывает все происходящее в командном файле, и параллельно меняет заголовок командной строки.
Вторая строка кода:
Echo Status oparations: In Progress...
Выводит статус операции.
Третья строка кода:
For /R D: %%i In (*.doc) Do (
Иницилизация цикла For.
Четвертая строка кода:
If Exist %%i (
Иницилизация цикла If.
Пятая строка кода:
Echo %%i >> D:Resault.doc
Условие если файл найден.
Восьмая строка кода:
Cls & Echo Status Oparations: Ended Seacher
Очистка крана, и вывод конечного сообщения об окончании операции.
Девятая строка кода:
Pause & Start D:Resault.doc & Echo On
Пауза, перед закрытием пакетного файла и запуск файла с результатами.
Выводы
Данный bat файл, универсален, удобен в использовании, но есть одно, НО!
Условия поиска нужно вводить вручную, и путь где искать