Программы для поиска из командной строки 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. Нафига сюда писать то, что не работает?