Find cmd exe windows

FIND — описание команды и примеры использования

FIND — Поиск заданной строки текста в файле или нескольких файлах.

Описание

После поиска в заданных файлах команда find выведет на экран все строки из этих файлов, содержащие заданный образец.

Синтаксис

Параметры

Параметр Описание
/v Выводит все строки, не содержащие строку, заданную параметром строка
/c Подсчет строк, содержащих строку, указанную параметром строка, и отображение общего количества
/n Выводит номера строк перед самими строками
/i Задает поиск без различия строчных и заглавных букв
«строка_поиска» Обязательный параметр. Указывает группу символов, поиск которой будет производиться. Необходимо заключить параметр строка в кавычки («строка»)
[диск:][путь] ИмяФайла Задает местоположение и имя файла, в котором будет производиться поиск заданной строки символов
/? Отображение справки в командной строке

Примечания

  • Если ключ /i не указан, команда find ищет именно то, что указано в параметре строка. Например, для команды find символы «a» и «A» являются различными. Если используется ключ /i, команда find не различает строчные и прописные буквы, и символы «a» и «A» являются одинаковыми.
  • Если строка поиска содержит кавычки, при вызове команды каждая кавычка в строке поиска должна быть заменена двумя символами кавычек («СтрокаСодержания»»Кавычки»).
  • Если имя файла пропущено, find действует как фильтр, получая ввод из стандартного источника вывода (обычно клавиатура, канал или файл перенаправления), и выводит все строки, содержащие параметр строка.
  • Параметры и ключи команды find могут быть заданы в произвольном порядке.
  • Подстановочные знаки (* и ?) не могут быть использованы в именах файлов и расширениях, задаваемых в команде find. Чтобы искать строку в множестве файлов, указанных с помощью подстановочных знаков, можно использовать команду find в команде for.
  • Если в одной команде заданы ключи /c и /v, команда find выведет на экран количество строк, которые не содержат заданную строку поиска. Если в одной команде указаны оба ключа: /c и /n, команда find игнорирует ключ /n.
  • Команда find не распознает символ перевода строки. Когда команда find используется для поиска текста в файле, который содержит символы перевода строки, необходимо ограничить строку поиска текстом, который может быть найден между символами перевода строки (строка не может прерываться символом перевода строки). Например, find не найдет совпадение для строки «файл налогов» если перевод строки в файле стоит между словами «файл» и «налогов».

Примеры

Для вывода всех строк из файла Pencil.ad, которые содержат слова «Точилка» служит следующая команда:

Для поиска строки, содержащей текст, указанный в кавычках, необходимо сначала заключить в кавычки всю строку. Во-вторых, необходимо использовать двойные кавычки для каждых кавычек, содержащихся в строке. Для поиска фразы «Точилка» (именно с ковычками в файле Pencil.ad:

Если поиск требуется провести в нескольких файлах, следует использовать команду find с командой for. Для поиска файлов с расширением .bat, содержащих строку «PROMPT», можно использовать следующую команду:

Для поиска на жестком диске C файлов, содержащих строку «CPU» и отображения их имен используйте символ канала (|), чтобы направить результаты команды dir в команду find:

Так как команда find проводит поиск, различая строчные и заглавные буквы, а команда dir выводит результаты заглавными буквами, необходимо задать строку «CPU» заглавными буквами или использовать ключ /i в команде find.

Команда FIND — поиск строки символов в файле

Команда 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»
. . .

Применение команды FIND для поиска строки в результатах вывода другой программы используется, например, для определения доступности сетевого узла с помощью команды PING . Утилита ping.exe не возвращает признак доступности пингуемого адреса в значении переменной ERRORLEVEL (Ненулевое значение ERRORLEVEL утилита ping.exe формирует только в том случае, если заданы ошибочные параметры командной строки). Поэтому, для определения доступности IP- адреса, используется анализ вывода ping.exe, который отличается для доступного и недоступного узла. Так, например, если пингуемый адрес доступен, то в сообщении будет присутствовать значение TTL :

Обмен пакетами с yandex.ru [87.250.250.11] по 32 байт:
Ответ от 87.250.250.11: число байт=32 время=10мс TTL=55

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

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

Утилиты find и findstr — поиск через командную строку

В этой статье мы с вами рассмотрим утилиту findstr и find командной строки, которые позволяет производить поиск строк в текстовом документе. Поиск через командную строку можно также настроить, используя шаблоны, которые настраиваются на основе регулярных выражений, но сперва, немного лирики…

В былые времена, когда я был еще полным чайником в компьютерах, мне пришлось услышать про волшебные “виртуальные диски”. В то время размер моего винчестера составлял 2 гигабайта, и на счету был каждый байт, я каждую картинки сжимал для экономии места, зато в системе был один фильм и одна игра “Age Of Empires 2”, я ее уже раз сто проходил. Так вот, я почему то решил, что “виртуальный диск”, это дополнительная память, которая может появится из воздуха… Где то два дня пытался всячески установить через Диспетчер устройств еще один винт на 500 метров, при том, что такого оборудования в системном блоке и подавно не было…

Утилита find командная строка

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

И так, смотрим на описание ключей:

[/V] – произвести вывод всех строк, которые НЕ содержат заданной.

[/C] – выводится только общее число строк, содержащих заданную.

[/N] – Вывод номеров отображаемых строк.

[/I] – Поиск без учета регистра символов.

[/OFF[LINE]] – Не пропускать файлы с установленным атрибутом «Автономный».

«искомые_значения» – собственно, строчка, поиск которой производится из командной строки Windows

[[диск:][путь]имя_файла[ . ]] – тут мы прописываем один или несколько имен документов, в которых нужно произвести поиск через командную строку, можно использовать подстановочные знаки.

Хорошо, теперь давайте попробуем написать несколько примеров.

Создадим на диске D:\ папку TEST, в который благополучно поместим три файла с расширениями .pdf, .txt и .mf. Для начала попробуем найти слово «const» во всех документах с расширением txt:

FIND «const» D:\TEST\*.txt

На выходе мы получим следующую информацию:

———- D:TESTSEND_MAIL_DATA.VBS.TXT
соnst toMSg =»to@yandex.ru» ‘получатель
соnst fromMSg =»from@gmail.com» ‘отправитель
соnst subjMsg = «Администратор» ‘субъект
соnst sndUsr =» login» ‘логин
соnst sndPswd =»password» ‘пароль
cоnst smtpSrvr = «smtp.gmail.com» ‘почтовый сервер

———- D:TESTSEND_MAIL_TEXT.VBS.TXT
cоnst toMSg =»to@yandex.ru»
cоnst fromMSg =»from@gmail.com»
cоnst subjMsg = «Администратор»
cоnst sndUsr =» login»
сonst sndPswd =»password»
сonst smtpSrvr = «smtp.gmail.com»

Как видим, мы получили список всех тех строчек, где встречается искомое слово.

Теперь попробуем сделать поиск через командную строку слова “samsung” во всех pdf файлах:

FIND «samsung» D:\TEST\*.pdf

Слово «samsung» встречается в одном документе, но, утилита FІND найти его не смогла, стоит обратить внимание, что и стандартный поиск операционной системы Windows также ничего не нашел, видимо, Google в этом все же больше преуспел.

Теперь попробуем усложнить задачу. Дело в том, что Windows ищет фразу не только в контексте файла, но и в его свойствах. Посмотрим, будет ли утилита find командной строки Windows производить поиск из описания. Я специально, по одному из каждого типа файлов (.pdf, .txt и .mf) вставлю в описание фразу «Victoria Sanremo». И так, приступим:

FIND «Victoria Sanremo» D:\TEST\*.*

В результат выполнения команды find, командная строка ничего не нашла в свойствах документов. Кроме утилиты FІND, есть еще и CMD FINDSTR, которая обладает немного большими возможностями.

Утилита FINDSTR командная строка

Утилита CMD FINDSTR предоставляется возможность осуществить поиск текста через командную строку не только в одном файле, или группе документов заданных по шаблону, но и с возможностью загрузки готового списка. И так, прежде всего, давайте посмотрим на основной синтаксис.

FINDSTR [/B] [/E] [/L] [/R] [/S] [/I] [/X] [/V] [/N] [/M] [/O] [/P] [/F:файл][/C:строчка] [/G:файл] [/D:список_папок] [/A:цвета] [/OFF[LINE]] «искомые_значения»[[диск:][путь]имя_файла[ . ]]

/B – Данный ключ определяет поиск образца лишь в началах строчек.

/E — Данный ключ определяет поиск образца лишь в конце.

/R – Фразы и слова будут приниматься как регулярные выражения.

/S – Производит поиск файлов через командную строку в текущем каталоге и всех его подпапках.

/I – Данный ключ определяет, что поиск фразы из командной строки будет вестись без учета регистра.

/X – Производит вывод только тех строчек, которые содержат точное совпадение.

/V — Производит вывод только тех строчек, которые не содержат точного совпадения с искомой фразой.

/N — Производит вывод номера строчки (которые содержат точное совпадение) и ее содержимое.

/M — Производит вывод лишь имени документа, который содержит совпадение.

/O – Вывести список найденных строк через пустую строчку.

/P – Данный параметр определяет, что произойдет пропуск всех строк, которые содержат непечатаемые символы.

/OFF[LINE] — Не пропускает те документы, у которых установлен атрибут «Автономный».

/A:цвета – Шестнадцатеричный код цвета, для получения справки можете ввести команду «COLOR /?»

/F:файл – Производит чтение списка файлов из заданного документа.

/C:строчка – Использовать значение данного параметра как искомую фразу поиска.

/G:файл – Позволяет получить список строк из заданного документа.

/D:список_папок – Тут через точку с запятой мы можем задать список каталогов, в которых нужно произвести поиск через командную строку.

“искомые_значения” – Собственно, то, что мы ищем.

[диск:][путь]имя_файла — Задаем путь к документу (документам)

Что бы разделить между собой искомые фразы, между ними вставляется пробел, если параметр не содержит префикса /C. Например,

FINDSTR «Привет мир» data.txt

ищет «Привет» или «мир» в файле data.txt, а команда

FINDSTR /C:»Привет мир» data.txt

ищет фразу «Привет мир» в файле data.txt.

Регулярные выражения являются своеобразным бонусом, которым не то, что оболочка, но и язык программирования не всегда может похвастаться. При поиске из командной строки, регулярные выражения позволяют задавать собственные шаблоны (для справки по некоторым значениям введите в cmd findstr/? ), они также используются в сценариях сервера Windows Script Host, за это отвечает отдельный объект.

Спасибо за внимание. Автор блога Владимир Баталий

Читайте также:  Линукс исправить held пакеты
Оцените статью