Windows bat if find

Команда FINDSTR

&nbsp &nbsp Команда FINDSTR используется для поиска текстовой строки в одном или нескольких файлах с использованием регулярных выражений. По сравнению с командой FIND данная команда позволяет выполнять значительно более гибкий поиск в соответствии с правилами, задаваемыми в качестве параметров командной строки. Регулярные выражения ( regular expressions ) — это своеобразный язык с применением обычных и специальных символов, задающих шаблон и алгоритм поиска. Обычные символы ( литералы ) — это привычные текстовые знаки — буквы, цифры, знаки препинания и т. п. Специальные символы ( метасимволы ) — это элементы записи правил и параметров обработки для обычных символов. Так, например, символ точка . означает «Любой символ», квадратные скобки — набор из заключенных в них символов, последовательность \d — любой цифровой символ, \D — любой не цифровой символ.

При необходимости обработки метасимволов как обычных элементов текста, в регулярных выражениях используется экранирующий символ — обратная косая черта \ . Запись \[ означает обычный символ раскрывающейся квадратной скобки, а не метасимвол для начала набора. Для экранирования нескольких метасимволов используется последовательность :

\Q . . . набор метасимволов . . .\E

Обратная косая черта перед обычным символом означает, что он интерпретируется как служебный символ:

\s — соответствует символу пробела.

При использовании в регулярных выражениях, строчные и заглавные символы различаются.

\S — любой символ, не пробел.

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

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

/B — Искать образец только в началах строк.
/E — Искать образец только в конце строк.
/L — Поиск строк дословно.
/R — Поиск строк как регулярных выражений.
/S — Поиск файлов в текущей папке и всех ее подпапках.
/I — Определяет, что поиск будет вестись без учета регистра.
/X — Печатает строки, которые совпадают точно.
/V — Печатает строки, не содержащие совпадений с искомыми.
/N — Печатает номер строки, в которой найдено совпадение, и ее содержимое.
/M — Печатает только имя файла, в которой найдено совпадение.
/O — Печатает найденный строки через пустую строку.
/P — Пропускает строки, содержащие непечатаемые символы.
/OFF[LINE] — Не пропускает файлы с установленным атрибутом «Автономный».
/A:цвета — Две шестнадцатеричные цифры — атрибуты цвета. См. «COLOR /?»
/F:файл — Читает список файлов из заданного файла (/ для консоли).
/C:строка — Использует заданную строку как искомую фразу поиска.
/G:файл — Получение строк из заданного файла (/ для консоли).
/D:список_папок — Поиск в списке папок (разделяются точкой с запятой).
строка — Искомый текст.
[диск:][путь]имя_файла — Задает имя файла или файлов.

Для разделения нескольких искомых строк, если аргумент не имеет префикса /C, используется пробел. Например,

FINDSTR «Привет мир» file.txt поиск «Привет» или «мир» в файле file.txt

FINDSTR /C:»Привет мир» file.txt поиск строки «Привет мир» в файле file.txt.

Краткую справку по использованию команды FINDSTR можно получить при использовании ключа /? :

Кроме параметров командной строки, справка дополнена краткой сводкой по синтаксису регулярных выражений:

. — Любой символ.
* — Повтор: ноль или более вхождений предыдущего символа или класса
^ — Позиция в строке: начало строки
$ — Позиция в строке: конец строки
[класс] — Класс символов: любой единичный символ из множества
[^класс] — Обратный класс символов: любой единичный символ из дополнения
[x-y] — Диапазон: любые символы из указанного диапазона
\x — Служебный символ: символьное обозначение служебного символа x
\ — Позиция в слове: в начале слова
xyz\ > — Позиция в слове: в конце слова

Читайте также:  Установка windows с hdd dell

За полной информацией о регулярных выражениях FINDSTR обратитесь к доступной интерактивной документации.

Примеры использования FINDSTR :

findstr /M 4 %temp%\*.* — отобразить список файлов ( ключ /M ), в которых содержатся цифры ( набор 0-9 ) из каталога временных файлов ( определяется %TEMP% )

findstr /P /I «Error» %temp%\*.* — Отобразить строки, содержащие слово Error . Поиск строк выполнять без учета регистра символов ( ключ /I ), строки, содержащие непечатаемые символы, не отображать ( ключ /P ) .

findstr /M /I /C:»network error» %windir%\system32\*.exe — отобразить список исполняемых файлов из системного каталога Windows\system32, в которых встречается строка «network error «

findstr /s /I /A:f4 /O /C:»failed» C:\*.log — отобразить строки файлов с расширением log , содержащие слово failed . Имя файла и смещение строки относительно его начала отображать красными символами на белом фоне ( ключ /A:F4 ). Поиск выполняется во всех файлах .log корневого каталога диска C: и всех его подкаталогов ( ключ /S )

findstr /A:FC /N /s /i «\ — отобразить строки, содержащие слово, начинающееся с » comput» ( compute, computer, computers и т. д. ), а также имена файлов и номера строк ( ключ /N ).

findstr /A:FC /N /s /i «\ — как и в предыдущем случае, но ищется строка, содержащая слово, начинающееся с подстроки правильн . При использовании символов русского языка нужно учитывать их кодировку, поскольку коды символов в DOS- и Windows — кодировке различаются. В командных файлах, когда необходимо выполнять поиск строк, содержащих символы национального алфавита, шаблон для поиска должен быть представлен в той же кодировке, что и содержимое файла. Можно использовать переключение кодовой страницы перед поиском:

REM переключаемся на Windows — кодировку
chcp 1251
REM Выполняем поиск
findstr /A:FC /N /s /i «\

findstr findstr

Выполняет поиск шаблонов текста в файлах. Searches for patterns of text in files.

Синтаксис Syntax

Параметры Parameters

Параметр Parameter Описание Description
/b /b Соответствует шаблону текста, если он находится в начале строки. Matches the text pattern if it is at the beginning of a line.
/e /e Соответствует шаблону текста, если он находится в конце строки. Matches the text pattern if it is at the end of a line.
/l /l Обрабатывает строки поиска буквально. Processes search strings literally.
/r /r Обрабатывает строки поиска в виде регулярных выражений. Processes search strings as regular expressions. Это параметр по умолчанию. This is the default setting.
/s /s Выполняет поиск в текущем каталоге и во всех подкаталогах. Searches the current directory and all subdirectories.
/i /i Игнорирует регистр символов при поиске строки. Ignores the case of the characters when searching for the string.
/x /x Выводит строки, которые точно соответствуют друг другу. Prints lines that match exactly.
/v /v Выводит только те строки, которые не содержат совпадений. Prints only lines that don’t contain a match.
/n /n Выводит номер строки каждой соответствующей строки. Prints the line number of each line that matches.
/m /m Печатает только имя файла, если файл содержит совпадение. Prints only the file name if a file contains a match.
/o /o Выводит смещение символов перед каждой совпадающей строкой. Prints character offset before each matching line.
/p /p Пропускает файлы с непечатаемыми символами. Skips files with non-printable characters.
«/OFF» [строка] /off[line] Не пропускает файлы с установленным атрибутом offline. Does not skip files that have the offline attribute set.
ключа /f: Возвращает список файлов из указанного файла. Gets a file list from the specified file.
/c: /c: Использует указанный текст в качестве литеральной строки поиска. Uses the specified text as a literal search string.
/g /g: Возвращает строки поиска из указанного файла. Gets search strings from the specified file.
/d /d: Выполняет поиск в указанном списке каталогов. Searches the specified list of directories. Каждый каталог должен быть отделен точкой с запятой (например,;) dir1;dir2;dir3 . Each directory must be separated with a semicolon (;), for example dir1;dir2;dir3 .
/ /a: Задает атрибуты цвета с двумя шестнадцатеричными цифрами. Specifies color attributes with two hexadecimal digits. Введите дополнительные color /? сведения. Type color /? for additional information.
Задает текст для поиска в файле filename. Specifies the text to search for in filename. Обязательный элемент. Required.
[\ :][

] [. ] Указывает расположение и файл или файлы для поиска. Specifies the location and file or files to search. Требуется по крайней мере одно имя файла. At least one file name is required. /? /? Отображает справку в командной строке. Displays Help at the command prompt.

Комментарии Remarks

Все параметры командной строки findstr должны предшествовать строкам и именам файлов в строке команды. All findstr command-line options must precede strings and filename in the command string.

Для поиска шаблонов текста в регулярных выражениях используются как литеральные символы, так и мета-символы, а не точные строки символов. Regular expressions use both literal characters and meta-characters to find patterns of text, rather than exact strings of characters.

Литеральный символ — это символ, который не имеет особого значения в синтаксисе регулярных выражений; Вместо этого он соответствует вхождению этого символа. A literal character is a character that doesn’t have a special meaning in the regular-expression syntax; instead, it matches an occurrence of that character. Например, буквы и цифры являются литеральными символами. For example, letters and numbers are literal characters.

Мета-символ — это символ с особым значением (оператор или разделитель) в синтаксисе регулярных выражений. A meta-character is a symbol with special meaning (an operator or delimiter) in the regular-expression syntax.

Допустимые мета-символы: The accepted meta-characters are:

Мета-символ Meta-character Значение Value
. Подстановочный знак — любой символ Wildcard — Any character
* Повтор — ноль или более вхождений предыдущего символа или класса. Repeat — Zero or more occurrences of the previous character or class.
^ Начальное расположение строки — начало строки. Beginning line position — Beginning of the line.
$ Конечное расположение строки — конец строки. Ending line position — End of the line.
[class] Класс символов — любой символ в наборе. Character class — Any one character in a set.
[^class] Обратный класс — любой символ, не наявляющийся в наборе. Inverse class — Any one character not in a set.
[x-y] Range — все символы в указанном диапазоне. Range — Any characters within the specified range.
\x Escape -литеральное использование мета-символа. Escape — Literal use of a meta-character.
\ Начальное расположение слова — начало слова. Beginning word position — Beginning of the word.
string\> Конечное расположение слова -конец слова. Ending word position — End of the word.

Специальные символы в синтаксисе регулярных выражений обеспечивают наибольшее энергопотребление при совместном использовании. The special characters in regular expression syntax have the most power when you use them together. Например, используйте сочетание символа-шаблона ( . ) и Repeat ( * ), чтобы соответствовать любой строке символов: .* For example, use the combination of the wildcard character ( . ) and repeat ( * ) character to match any string of characters: .*

Используйте следующее выражение как часть выражения большего размера для сопоставления любой строки, начинающейся с b , и заканчивая оператором with: b.*ing Use the following expression as part of a larger expression to match any string beginning with b and ending with ing: b.*ing

Для поиска нескольких строк в наборе файлов необходимо создать текстовый файл, содержащий каждый критерий поиска в отдельной строке. To search for multiple strings in a set of files, you must create a text file that contains each search criterion on a separate line.

Используйте пробелы для разделения нескольких строк поиска, если только аргумент не имеет префикса с параметром /c. Use spaces to separate multiple search strings unless the argument is prefixed with /c.

Примеры Examples

Для поиска Hello или в файле x. y введите: To search for hello or there in file x.y, type:

Чтобы найти Hello в файле x. y, введите: To search for hello there in file x.y, type:

Чтобы найти все вхождения слова Windows (с заглавной буквой W) в файле proposal.txt, введите: To find all occurrences of the word Windows (with an initial capital letter W) in the file proposal.txt, type:

Для поиска всех файлов в текущем каталоге и всех подкаталогах, содержащих слово Windows, независимо от регистра букв, введите: To search every file in the current directory and all subdirectories that contained the word Windows, regardless of the letter case, type:

Чтобы найти все вхождения строк, начинающихся с и, предшествует нулю или большему числу пробелов (как в цикле компьютерной программы ) и для вывода номера строки, где найдено каждое вхождение, введите: To find all occurrences of lines that begin with FOR and are preceded by zero or more spaces (as in a computer program loop), and to display the line number where each occurrence is found, type:

Чтобы получить список точных файлов, которые необходимо найти в текстовом файле, используйте условия поиска в файле stringlist.txt, чтобы найти файлы, перечисленные в filelist.txt, а затем сохраните результаты в файле Results. out, введите: To list the exact files that you want to search in a text file, use the search criteria in the file stringlist.txt, to search the files listed in filelist.txt, and then to store the results in the file results.out, type:

Чтобы получить список всех файлов, содержащих слово Computer в текущем каталоге и всех подкаталогах, не зависимо от регистра, введите: To list every file containing the word computer within the current directory and all subdirectories, regardless of case, type:

Чтобы получить список всех файлов, содержащих слово Computer, и других слов, начинающихся с «Comp» (например, «Привет» и «конкурировать»), введите: To list every file containing the word computer and any other words that begin with comp, (such as compliment and compete), type:

Читайте также:  Установка мастер установки windows
Оцените статью