Программы для поиска из командной строки Windows 7

Программы для поиска из командной строки Windows 7

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

Программа find осуществляет поиск текстовой строки в одном или нескольких файлах. Синтаксис её таков: [code]find [/опции] "строка для поиска" ДИСК:\Папка\ШаблонИмениФайла*.*[/code] Программа find отличается от графического инструментария поиска Windows 7, что может искать текст во всех типах файлов, например, в DLL или EXE. Графические средства поиска Windows 7, как известно, текст в подобных файлах не ищут.

Программа find имеет следующий перечень опций, влияющих на её поведение и возможности:

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

Программа FINDSTR

Утилита findstr выглядит функционально расширенной версией программы find. Синтаксис их схож: [code]findstr [/опции] "строка для поиска" ДИСК:\Папка\ШаблонИмениФайла*.*[/code] Однако, findstr поддерживает сразу несколько шаблонов имени файлов и несколько поисковых строк, которые нужно разделять пробелами. Кроме того, findstr поддерживает работу с регулярными выражениями. Опции при работе с ней таковы:

  • /B - искать указанную строку-образец только в начале строк.
  • /E - искать указанную строку-образец только в конце строк.
  • /L - поиск строк дословно, т.е. в точном соответствии с введенной фразой
  • /R - искать указанную строку-образец с использованием регулярных выражений.
  • /S - поиск файлов в текущей папке и всех ее подкаталогах.
  • /I - поиск будет вестись без учета регистра.
  • /X - выводить строки, которые совпадают точно.
  • /V - выводить строки, не содержащие совпадений с искомыми.
  • /N - выводить номер строки, в которой найдено совпадение.
  • /M - выводить только имя файла, в котором найдено совпадение.
  • /O - выводить найденные строки через пустую строку.
  • /P - пропуск строки, содержащей непечатаемые символы.
  • /OFF[LINE] - искать в файлах с установленным атрибутом "Автономный".
  • /A:цвета - две шестнадцатеричные цифры - атрибуты цвета вида (Цвет фона)(Цвет текста). Список цветов таков:

Совет: Выполните команду Color /?, чтобы узнать, как устанавливать цвета в окне команд.

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

  • . - любой символ.
  • * - ноль или более вхождений предыдущего символа или класса
  • ^ - начало строки
  • $ - конец строки
  • [класс] - набор символов: любой символ из перечисленных в скобках
  • [^класс] - обратный класс символов: любой символ из НЕ перечисленных в скобках
  • [x-y] - любые символы из указанного диапазона, например [a-b]
  • \x - служебный символ х: \t - табуляция, \n - начало строки
  • \?xyz - позиция в слове: в начале слова
  • xyz\> - позиция в слове: в конце слова

Примеры использования: [code]findstr /I windows microsoft.txt[/code] Поиск всех слов "windows" без учёта регистра в файле microsoft.txt [code]findstr /s /i /m "\<microsoft\>" *.txt[/code] Построить список txt-файлов в текущем каталоге и его подкаталогах, содержащий слово "microsoft", игнорируя регистр. [code]findstr "Привет от штиблет" file.txt[/code] Поиск слов "Привет", "от" и "штиблет" в файле file.txt с учётом регистра. [code]findstr /C:"Привет от штиблет" file.txt[/code] Поиск фразы "Привет от штиблет" в файле file.txt с учётом регистра.

Программа WHERE

И последняя программа, на которую мне бы хотелось обратить ваше внимание, это where. Она выполняет поиск файла по указанному шаблону его имени. Синтаксис в общем случае таков: [code]where Каталог:шаблон[/code] Для случая, когда каталог не указан, поиск файлов осуществляется в текущем каталоге и в каталогах, указанных в переменной окружения PATH.

Например, [code]WHERE "c:\windows:*.exe"[/code] Поиск исполняемых файлов в каталоге c:\Windows

Каталогов для поиска может быть указано несколько, для этого применяется конструкция вида: [code]where c:\windows;c:\windows\system32:*.txt[/code] При этом можно использовать только один шаблон.

Параметры программы Where:

  • /R - рекурсивный поиск и отображение файлов, соответствующих указанному шаблону, начиная с указанного каталога. При использовании опции /R можно использовать несколько шаблонов, но для одного каталога. Синтаксис таков: [code]where /R c:\windows *.txt *.wav[/code]
  • /Q - интересная опция с точки зрения использования в командных файлах. При её указании утилита переходит в тихий режим, списка файлов не выводит, но устанавливает код возврата, указывающего на результат её выполнения. Считать код возврата можно из переменной окружения %ERRORLEVEL%.
    • %ERRORLEVEL%=0 - поиск успешен/файлы найдены
    • %ERRORLEVEL%=1 - ничего не найдено
    • %ERRORLEVEL%=2 - поиск завершен с ошибками

    Отмечу, что в качестве шаблона пути можно использовать переменные окружения, вот так: [code]where $path:*.exe where $windir:*.exe where $windir:*.exe where $temp:*.tmp[/code] Микрософт не рекомендует использовать рекурсивный поиск при наличии переменных окружения в командной строке where. Полагаю, из-за вероятности повторения результатов и замедления работы поиска.

    💡Узнавайте о новых статьях быстрее. Подпишитесь на наши каналы в Telegram и Twitter.

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

    Вы здесь: Главная страница » Windows » Windows 7 » Программы для поиска из командной строки Windows 7

    Публикации по теме

    Автор: Сергей Ткаченко

    Сергей Ткаченко создал этот сайт в далёком 2009 году, и с тех пор продолжает над ним работать, публикуя новые материалы о Windows и её приложениях практически каждый день. Посмотреть все записи автора Сергей Ткаченко

    Программы для поиска из командной строки Windows 7: 2 комментария

    команда «where» в Windows XP не работает

    А тебя не смутило название статьи: Поиск для Windows 7. Нафига сюда писать то, что не работает?