Поиск файлов по атрибутам windows

Обновлено: 07.07.2024

Команда FIND используется для поиска текстовой строки в одном или нескольких файлах. Если путь не задан, команда FIND выполняет поиск в тексте консоли либо в тексте, переданном по конвейеру другой командой ( в тексте, являющемся выводом команды, выполняющейся в цепочке с FIND ).

Формат командной строки:

FIND [/V] [/C] [/N] [/I] [/OFF[LINE]] "строка" [[диск:][путь]имя_файла[ . ]] Параметры команды:

/V - Вывод всех строк, НЕ содержащих заданную строку.
/C - Вывод только общего числа строк, содержащих заданную строку.
/N - Вывод номеров отображаемых строк.
/OFF[LINE] - Не пропускать файлы с установленным атрибутом "Автономный".
/I - Поиск без учета регистра символов.
"строка" - Искомая строка.
[диск:][путь]имя_файла - Один или несколько файлов, в которых выполняется поиск.

FIND /? - выдать справку по использованию команды.

find /I myfile.txt "новость" - выполнить поиск строки новость без учета регистра символов в текстовом файле myfile.txt . По умолчанию, если не задан параметр /I регистр символов учитывается.

find /C myfile.txt "новость" - отобразить общее количество строк, содержащих текст "новость".

FIND /I %TEMP%\*.tmp "windows" - выполнить поиск в каталоге временных файлов для всех файлов с расширением tmp строк , содержащих текст windows без учета регистра символов.

FIND /I %TEMP%\*.tmp "windows" | more - то же, что и в предыдущем примере, но с использованием постраничного вывода на экран.

ipconfig /all | FIND "DNS" - из вывода команды ipconfig /all найти строки, содержащие текст DNS

Обратите внимание, на нехарактерный синтаксис этой команды - строка поиска обязательно заключается в двойные кавычки, поэтому имена и пути файлов, содержащих пробелы, обрабатываются некорректно. Для поиска в таких файлах можно воспользоваться перенаправлением ввода ( символ )

Соответственно, пример с поиском во временных файлах, приведенный выше, в ОС Windows XP ( значение переменной %TEMP% по умолчанию принимает путь с пробелами ) будет выполняться верно при использовании следующей команды:

Естественно, шаблон имени файла *.tmp использовавшийся в примере выше, при перенаправлении ввода применять нельзя ( перенаправление можно выполнять для конкретного файла - textfile.tmp в примере ) и для организации поиска текстовой строки в нескольких файлах можно воспользоваться циклической обработкой их содержимого , например, с помощью команды FOR .

@ECHO OFF
for %%i in ("%TEMP%\*.tmp") do FIND %%i "windows"
. . .

А в случае недоступности, строка символов "TTL" в выводимых результатах отсутствует. Если строка символов "TTL" найдена, то FIND сформирует значение переменной ERRORLEVEL равным 0 Таким образом, для определения факта доступности узла в командном файле можно воспользоваться следующим способом:

ping -n 1 COMPUTER | find /I "TTL" > nul
if %ERRORLEVEL%==0 goto LIVE
ECHO computer не доступен
подпрограмма обработки недоступного состояния
. . .
Exit
:LIVE - начало подпрограммы обработки состояния доступности узла
. . .
. . .

windows-search

В этой статье вы узнаете весьма интересные вещи о встроенном файловом поиске Windows и прочитав материал сможете находить даже затерянные в папках файлы о которых знаете крупицы информации.

Нетрудно догадаться что речь зайдёт в этом материале о расширенном поиске в Windows. Несомненно каждый пользователь компьютера периодически использует форму стандартного "поисковика" Windows, но далеко не все знают о том что этим поисковиком можно пользоваться куда более производительно и это непростой инструмент как может показаться с первого взгляда.

Опции и и параметры расширяющие возможности поиска

Несмотря на то что в заголовке есть слово "расширяющие", эти самые опции будут помогать нам ставить дополнительные отсеивающие фильтры на наш поисковый запрос по файлам и папкам в Windowsи фактически будут сужать количество находимых файлов, что нам как раз на пользу.

* - Означает любую последовательность любых символов, т.е. все символы.

? - Любой один символ

<"something" - Поиск имени (Название файла, автор и тд., смотря где поставить) которое должно начинаться с того что в кавычках. В примере ищется имя, где начало something.

>"something" - Поиск имени, которое должно оканчиваться на то что в кавычках.

- Поиск точного совпадения с тем, что находится в кавычках.

- Поиск имени, которые содержат точный набор символов как тот, который в кавычках. Т.е. по запросу имяфайла:

="курс" будут находиться файлы не только со словом Курс, но и просто содержащие эту последовательность символов (Курсовой, Курсач).

!"Курс" - Поиск файлов, которые не содержат того что в кавычках. Т.е. этот параметр полностью противоположен предыдущему.

<> - Означает как "ни есть", "не". Т.е. запрос где будет вид: <> картинка , будет искать всё кроме картинок.

() - Скобки служат для того чтобы отделять и уточнять комбинирующую группу, где действуют операторы.

"" - Кавычки служат для точного нахождения порядка символов внутри кавычек. Из-за этого внутри кавычек операторы не работают вовсе, как и фильтры.

ИЛИ - Оператор ИЛИ. Например, запрос имяфайла: курсовая ИЛИ работа будет искать файлы где встречаются слова либо курсовая либо работа ну или и то и то. В английской версии OR.

И - Оператор И. Например, запрос имяфайла: к урсовая И работа будет искать файлы где есть оба слова, причём нет разницы в каких местах они расположены и необязательно рядом друг с другом. В английской версии AND.

НЕ - Оператор НЕ. Например, запрос имяфайла: курсовая НЕ работа будет искать файлы где есть слово курсовая, но нет слова работа. В английской версии NOT.

Приведём немного приверов использования операторов:

размер:10МБ И автор: (Иван) НЕ датаизменения:>2009 - Найдёт файлы Ивана по 10 Мегабайт, которые изменены после 2009 года.

имяфайла: (*156*) И тип:(PNG ИЛИ JPEG) - Найдёт файлы, где в имени содержится 156 и его расширение будет PNG либо JPEG.

автор:( Ал* ИЛИ Иван) - Найдёт файлы авторов Алексея, Александра, Алёны и Ивана.

Теперь фильтрирующие опции.

Ниже мы приведём какие фильтрирующие опции вы можете использовать при поиске файлов и папок.

имяфайла: - Имя искомого файла. Аналог на англоязычной Windows - filename.

тип: Указывает какой тип файла ищется в данный момент. Может принимать как значения расширений файлов (Например, тип: PNG ), так и их логическое определение (Например: тип: музыка или тип: картинка ). Аналог на англоязычной Windows - type.

вид: - Тоже самое что и тип:. Аналог на англоязычной Windows - kind:

датаизменения: - Указывает на то, когда файлы был изменён. Может принимать точные значения, диапазоны, а также словестные значения (давно, вчера и тд.). Аналог на англоязычной Windows - datemodified.

датаизменения: 21.‎01.‎2001 .. ‎05.‎01.‎2014 (Обязательно две точки в диапазоне)

датасоздания: - Указывает на то, когда файл был создан. Значения принимает такие же как и у датаизменения. Англоязычный аналог datecreated.

размер: - Указывает какой размер должен быть у искомых файлов. Может принимать как точный значения вплоть до десятичных чисел, так и диапазон размеров. В качестве единицы измерения выступают Кб, Мб, Гб. Англоязычный параметр - size:.

размер: <=7Мб >1.5Мб - файлы больше 1,5 мегабайта, но меньше или равны 7.

атрибуты: - Задаёт дополнительную маску поиска по тегам. Параметр нечасто используется из-за того что редко используют теги.

автор: - Указывание автора, чьи файлы будут находиться.

владелец: - Поиск файлов определённого владельца.

исполнитель: - Указывание данного атрибута релевантно при поиске музыки того или иного исполнителя.

Комбинирование фильтрирующих опций

Можно использовать сразу несколько различных опций при поиске и это даже будет лучше, потому что сократит список найденных файлов, повыся при этом их релевантность. При нескольких поисковых фильтрах ставьте между ними пробел, фактически он заменяет оператора AND.

Внимание! Операторы И, ИЛИ НЕ никогда не подсвечиваются синим в строке поиска. Если у вас подсветились, значит вы забыли либо кавычки либо скобки либо что-то ещё. Обратите внимание что некоторые фильтры не могут работать с определёнными операторами. Например не может быть тип:(BMP И PNG), так как любой файл может быть только одного типа.

Например можно использовать запрос:

размер:5KB..20 KB тип:картинка имяфайла:

<"m" *little* датаизменения:‎01.‎03.‎2014 .. ‎31.‎03.‎2014

Данный запрос ищет изображения размером от 5 до 20 килобайт с именем файла, которое начинается с буквы m и в котором встречается слово little. При этом файл должен был быть изменён в течении марта 2014 года.

Как вы сами видите с такими возможностями можно легко искать файлы многолетней давности помня хоть какие-то мелочи о нём.

Несколько шаблонов

Для того чтобы вы лучше всё поняли и могли попробовать расширенный поиск Windows самостоятельно, мы решили сделать несколько наиболее часто использующихся шаблонов расширенного поиска, которые нередко могут пригодиться.

Как найти все файлы в папке?

Иногда человек хочет посчитать сколько файлов в той или иной папке и перед ним встаёт вопрос как это сделать. С помощью поиска Windows? Но тогда что вводить? Вводимое берёт начало у регулярных выражений и те кто знает не по наслышке что это такое уже догадался что за символ нужно вписать в поисковое поле.

В поисковое поле нужно ввести: * (Звёздочку).

Как найти все файлы одного типа (Расширения)?

Если вы хотите найти например только картинки используйте фильтр тип:картинка, а если вы желаете найти файлы определённого расширения, тогда можно использовать либо *.jpg либо тип:JPEG.

Как найти файлы созданные в определённое время?

Для этого вам нужно использовать фильтр датасоздания:ДД/ММ/ГГГГ. О нём написано выше. Вы также можете ставить фильтр не по точному времени создания файла, а по промежутку. Например с сентября 2011 по декабрь 2012. О правильной постановке поискового запроса с таким фильтром, написано выше.

Как найти файлы определённого размера?

Вам нужно использовать фильтр размер: и указать необходимый размер файла в килобайтах, мегабайтах или гигабайтах. О том как можно искать в диапазоне размеров и как правильно указывать размер искомых файлов, вы можете прочитать выше.

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

Выполняет поиск строки текста в файле или файлах и отображает строки текста, содержащие указанную строку.

Синтаксис

Параметры

Параметр Описание
/v Отображает все строки, не содержащие указанный объект <string> .
/C Подсчитывает количество строк, содержащих указанный объект <string> , и отображает итоговое значение.
/n Предшествует каждой строке с номером строки файла.
/i Указывает, что при поиске регистр не учитывается.
["/OFF" [строка]] Не пропускает файлы с установленным атрибутом "вне сети".
<"string"> Обязательный. Задает группу символов (заключенных в кавычки), которые требуется найти.
[<drive>:][<path>]<filename> Указывает расположение и имя файла, в котором выполняется поиск указанной строки.
/? Отображение справки в командной строке.

Коды выхода

Код выхода Описание
0 Искомая строка найдена
1 Искомая строка не найдена
2 Искомый файл не найден, или указан недопустимый параметр командной строки

Remarks

Если вы не используете /i, эта команда ищет именно то, что указано для String. Например, эта команда обрабатывает символы и по a - A разному. Однако при использовании параметра /i Поиск не учитывает регистр, он интерпретируется a и как один и тот A же символ.

Если строка, которую нужно найти, содержит кавычки, необходимо использовать двойные кавычки для каждой кавычки, содержащейся в строке (например, ""). Эта строка содержит кавычки "" ").

Если опустить имя файла, эта команда выступает в качестве фильтра, принимая входные данные из стандартного источника входных данных (обычно это клавиатура, канал (|) или перенаправленный файл), а затем отображает все строки, содержащие строку.

Чтобы выйти из поиска в консоли, используйте CTRL-X или CTRL-z .

Параметры и параметры командной строки для команды Find можно вводить в любом порядке.

В строке, в которой выполняется поиск, нельзя использовать подстановочные знаки (* и ?). Для поиска строки с подстановочными знаками и шаблонами регулярных выражений можно использовать команду findstr .

При использовании /c и /v в одной командной строке эта команда отображает количество строк, которые не содержат указанную строку. При указании параметра /c и /n в той же командной строке команда Find игнорирует параметр /n.

Эта команда не распознает возвраты каретки. При использовании этой команды для поиска текста в файле, который содержит символы возврата каретки, необходимо ограничить строку поиска текстом, который может быть найден между возвратами каретки (то есть строкой, которая не может быть прервана символом возврата каретки). Например, эта команда не сообщает о совпадении для строкового налогового файла, если между словами налога и файла происходит возврат каретки.

Команда принимает подстановочные знаки для имен файлов. При поиске в файле (или файлах) будет распечатан файл обработанного файла предецеасед на десять штрихов.

Команда Find не может читать альтернативные потоки данных. Для поиска в альтернативных потоках данных используйте команды findstr, More или for/f .

Примеры

Чтобы отобразить все строки из Pencil.md , которые содержат строку резкость карандаша, введите:

Чтобы найти текст, «специалисты, обозначенные в документе только для обсуждения. Это не окончательный отчет ". (включая кавычки) в файле report.txt , введите:

Для поиска набора файлов можно использовать подстановочные знаки. Чтобы найти в текущем каталоге файлы с расширением .bat и, которые содержат строку без учета регистра, введите следующую команду :

Как выполнить поиск файлов в командной оболочке PowerShell?


Содержание

Командлет Поиска Файлов

Поиск файлов в PowerShell осуществляется с помощью командлета Get-ChildItem . Вызов данного командлета без аргументов выполнит вывод содержимого текущей директории.


У данного командлета присутствуют несколько псевдонимов (aliases) - ls , dir , gci .


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

Поиск По Маске

Аргументы командлета Get-ChildItem позволяют выполнить поиск файлов. Доступные параметры, маска имени файла (-Filter), стартовая директория поиска (-Path), и возможность рекурсивного поиска в поддиректориях (-Recurse).

Поиск по маске, для примера осуществим вывод всех файлов с расширением ZIP.


Файловые маски не могут содержать регулярных выражений, только стандартные "*" (любое количество символов) и "?" (один любой символ).


Как можно заметить, указывать параметр -Filter не обязательно, командлет сам понимает что ему была передана фильтрующая маска. Порядок следования параметров без их конкретного указания можно посмотреть во встроенной справке.


Параметр -Path позволяет задать путь начала поиска. Так же он допускает использовать символы файловых масок. Можно совмещать комбинацию фильтров в параметре -Path и -Filter.

Выведем содержимое диска C:\.


По умолчанию, выводится только содержимое текущей директории, но для полноценного поиска файлов необходимо выполнить обход всех файлов во всех поддиректориях. Осуществить такой обход позволяет параметр -Recurse.

Попробуем найти все файлы с расширением *.msc на диске C:\.


Как вы могли заметить, при выводе содержимого диска C:\ отсутствовали скрытые файлы. Отображение скрытых и системных файлов задается атрибутами, о которых поговорим далее.

Поиск По Атрибутам

По умолчанию, скрытые файлы не попадают выходной список командлета Get-ChildItem . Вывод файлов с различными атрибутами, такими как скрытый, системный и прочее, можно задать с помощью параметра -Attributes.

Возможные значения для данного параметра можно посмотреть во встроенной справке по командлету ( Get-ChildItem -? ).

Важные, или популярные, атрибуты вынесены в отдельные параметры, а именно -Directory, -File, -System, -Hidden.


Попробуем посмотреть файлы скрытые файлы на диске C:\.


При указании параметра -Hidden выводятся только скрытые файлы и папки.

С параметром -Attributes все иначе. Он позволяет комбинировать файловые атрибуты. Доступны три операции:

! - NOT, исключает файлы с данным атрибутом (!Directory)
+ - AND, включает файлы со всеми указанными атрибутами (System+Hidden)
, - OR, включает файлы с хотя бы с одним указанным атрибутом (System, Hidden, Directory)

Модификаторы можно комбинировать.


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

Поиск По Дате

Список файлов полученный с помощью вышеописанных способов можно отфильтровать по дате. Делается это с помощью передачи результатов выполнения командлета Get-ChildItem командлету Where-Object .

Пример фильтрации вывода команды по дате, с применением псевдонимов.


Для командлета Where-Object можно задать так же другие условия, или даже несколько условий. Подробнее об этом можно узнать в справке по данному командлету.

Поиск По Содержимому

Поиск по содержимому, предполагает обход всех файлов с целью найти в них искомый текст. Выполнить данную операцию можно с помощью передачи всех файлов по конвейеру командлету Select-String .

Для примера я создал три текстовых файла с текстом:

1.txt (first)
2.txt (second)
3.txt (first second third)


Структура расположения файлов следующая.


Теперь примеры поиска текста в данных файлах с помощью PowerShell.



Использование Найденных Файлов

Полученные списки файлов, всеми вышеописанными способами, можно передавать по конвейеру таким командлетам как Remove-Item , Move-Item , Copy-Item и прочим подобным. Тем самым упрощая работу с полученными файлами.

Читайте также: