Команда FIND выполняет поиск заданной строки в одном или нескольких текстовых файлах и выводит строки, содержащие совпадение. Чаще всего её используют для фильтрации вывода других команд через пайп и быстрого анализа логов прямо в командной строке.
- Синтаксис команды FIND
- Ключи и параметры
- Примеры использования
- Фильтрация лога по ключевому слову
- Поиск без учёта регистра
- Подсчёт совпадений
- Инверсный поиск — исключение строк
- Фильтрация вывода другой команды через пайп
- Поиск с выводом номеров строк
- Поиск сразу в нескольких файлах
- Частые ошибки и решения
- Когда применять, а когда нет
- FAQ
- В чём разница между FIND и FINDSTR?
- Можно ли использовать FIND для поиска в нескольких файлах по маске *.log?
- Как узнать, сколько строк с ошибками в логе?
- Что возвращает FIND в качестве кода выхода?
- Как найти строку, в которой встречаются два разных слова?
Синтаксис команды FIND
FIND [/V] [/C] [/N] [/I] [/OFF[LINE]] "строка" [[диск:][путь]имя_файла [...]]
Параметры:
"строка"— искомый текст, обязательно в кавычках.[диск:][путь]имя_файла— файл или список файлов для поиска. Если не указан — читает стандартный ввод (stdin).
Ключи и параметры
| Ключ | Описание | Пример |
|---|---|---|
/I | Поиск без учёта регистра (apple = Apple = APPLE) | FIND /I "error" app.log |
/N | Выводит номер строки перед каждым совпадением | FIND /N "warning" app.log |
/C | Выводит только количество строк с совпадением (без самих строк) | FIND /C "error" app.log |
/V | Инверсия: выводит строки, которые НЕ содержат искомое | FIND /V "ok" results.txt |
/OFF[LINE] | Не пропускать файлы с атрибутом «Автономный» (offline) | FIND /OFFLINE "text" file.txt |
Примеры использования
Фильтрация лога по ключевому слову
Нужно быстро найти все строки с ошибками в файле журнала.
FIND "ERROR" C:\Logs\app.log
Команда выведет каждую строку, содержащую слово ERROR, с указанием имени файла над результатами.
Поиск без учёта регистра
Когда неизвестно, как именно написано слово в файле — строчными или заглавными буквами.
FIND /I "failed" C:\Logs\setup.log
Найдёт строки с failed, Failed, FAILED — любое сочетание регистра.
Подсчёт совпадений
Нужно узнать, сколько раз встречается строка, без вывода самих строк.
FIND /C "timeout" C:\Logs\network.log
Выведет только число — например, ---------- C:\LOGS\NETWORK.LOG: 17.
Инверсный поиск — исключение строк
Нужно отфильтровать «шумные» строки и оставить только нужные.
FIND /V "DEBUG" C:\Logs\verbose.log
Выведет все строки, кроме тех, где есть слово DEBUG.
Фильтрация вывода другой команды через пайп
Требуется найти конкретный процесс в списке запущенных задач.
TASKLIST | FIND "chrome"
Команда TASKLIST передаёт свой вывод в FIND, которая оставит только строки со словом chrome.
Поиск с выводом номеров строк
Нужно знать точные номера строк для последующего редактирования файла.
FIND /N "404" C:\Logs\access.log
Каждое совпадение будет выведено с префиксом номера строки: [142]404 /old-page.html.
Поиск сразу в нескольких файлах
Проверка нескольких логов одной командой.
FIND "CRITICAL" C:\Logs\app1.log C:\Logs\app2.log C:\Logs\app3.log
Перед каждой группой результатов FIND выведет имя соответствующего файла.
Частые ошибки и решения
| Ошибка / ситуация | Причина | Решение |
|---|---|---|
| Команда ничего не выводит, хотя строка есть | FIND чувствителен к регистру по умолчанию | Добавьте ключ /I для поиска без учёта регистра |
Параметр задан неверно | Строка поиска не взята в кавычки | Всегда оборачивайте строку в двойные кавычки: FIND "текст" |
| Ошибка при поиске в файлах с маской (*.log) | FIND не поддерживает wildcards в путях | Используйте пайп: TYPE *.log | FIND "error" или команду FINDSTR с поддержкой масок |
| FIND не находит строку в бинарном файле | Команда предназначена только для текстовых файлов | Для бинарных файлов используйте специализированные утилиты |
| Поиск строки, содержащей кавычку | Двойные кавычки — служебный символ | Экранируйте кавычку удвоением: FIND "слово ""с кавычками""" |
Когда применять, а когда нет
FIND подходит для быстрого поиска фиксированной строки в текстовых файлах и фильтрации вывода команд через пайп. Команда работает только с текстом и не поддерживает регулярные выражения. Если нужен поиск по шаблону (regex), по маске файлов или с расширенными возможностями — используйте FINDSTR. В PowerShell аналог — командлет Select-String, который поддерживает регулярные выражения и работает с объектами. FIND доступна во всех версиях Windows без ограничений по правам.
FAQ
В чём разница между FIND и FINDSTR?
FIND ищет точную строку и не поддерживает регулярные выражения. FINDSTR поддерживает регулярные выражения, поиск по маске файлов и несколько строк одновременно. Для простых задач FIND быстрее и проще.
Можно ли использовать FIND для поиска в нескольких файлах по маске *.log?
Нет, FIND не поддерживает wildcards в именах файлов напрямую. Обходной путь: FOR %f IN (*.log) DO FIND "строка" "%f" или TYPE *.log | FIND "строка".
Как узнать, сколько строк с ошибками в логе?
Используйте ключ /C: FIND /C "ERROR" C:\log.txt. Команда выведет только число совпадающих строк.
Что возвращает FIND в качестве кода выхода?
Код 0 — строка найдена. Код 1 — строка не найдена. Код 2 — ошибка (файл не найден, неверный синтаксис). Это удобно использовать в BAT-скриптах с IF ERRORLEVEL.
Как найти строку, в которой встречаются два разных слова?
Пропустите результат первого FIND во второй: FIND "слово1" file.txt | FIND "слово2". Так можно строить цепочки фильтров.


