2

Я искал это и не нашел это, возможно, я не использую правильные термины. Я ищу утилиту поиска файлов в Windows 7, которая будет:

  • поиск файлов в определенных каталогах
  • поиск содержимого файла
  • предварительный просмотр найденных строк (желательно с несколькими строками вокруг найденной строки)
  • сохранить поисковые термины как пресеты (например, * .aspx.cs или * .cs или их комбинацию)
  • поиск в офисных документах

Notepad++ сделает это, но я ищу что-то, что также добавляет индексацию, чтобы она была быстрее. Locate32 делает большую часть этого, но не имеет предварительного просмотра. Кажется, что все утилиты поиска файлов, которые я нашел, не делают то, что я хочу.

1 ответ1

0

Ну, так как вы Windows 7, вы можете сделать это в PowerShell. Сначала вы откроете консоль Powershell, затем вот несколько примеров команд, которые вы можете запустить (вы можете увидеть все эти и другие примеры, набрав «Get-Help Select-String -example» в командной строке powershell):

C:\PS>select-string -path *.xml -pattern "the the"

Описание

Эта команда просматривает все файлы с расширением .xml в текущем каталоге и отображает строки в этих файлах, содержащие строку "the".


C:\PS>select-string -path $pshome\en-US\*.txt -pattern "@"

Описание

Эта команда выполняет поиск файлов концептуальной справки Windows PowerShell (о _ *. Txt) для получения информации об использовании знака at (@).

Чтобы указать путь, эта команда использует значение автоматической переменной $ pshome, в которой хранится путь к каталогу установки Windows PowerShell. В этом примере команда выполняет поиск в подкаталоге en-US, который содержит файлы справки на английском (США) языке для Windows PowerShell.


C:\PS>get-childitem c:\windows\system32\* -include *.txt -recurse |
select-string -pattern "Microsoft" -casesensitive

Описание

Эта команда проверяет все файлы в подкаталогах C:\Windows\System32 с расширением имени файла .txt и ищет строку "M icrosoft". Параметр CaseSensitive указывает, что буква "M" в "Microsoft" должна быть написана заглавными буквами, а остальные символы должны быть строчными, чтобы Select-String находил совпадение.


C:\PS>$f = select-string -path audit.log -pattern "logon failed" -context 2, 3
C:\PS> $f.count
C:\PS> ($f)[0].context | format-list

Описание

Первая команда ищет Аудит.Файл журнала для фразы «вход не выполнен». Он использует параметр Context, чтобы захватить 2 строки до совпадения и 3 строки после совпадения.

Вторая команда использует свойство Count массивов объектов для отображения количества найденных совпадений, в данном случае 2.

Третья команда отображает строки, хранящиеся в свойстве Context первого объекта MatchInfo. Он использует обозначение массива, чтобы указать первое совпадение (совпадение 0 в массиве, начинающемся с нуля), и использует командлет Format-List для отображения значения свойства Context в виде списка.

Выходные данные состоят из двух объектов MatchInfo, по одному на каждое обнаруженное совпадение. Строки контекста хранятся в свойстве Context объекта MatchI nfo.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .