Как искать внутри файлов на Windows 7?

813343
Breakthrough

В Windows XP мы можем искать файлы, которые содержат определенное ключевое слово (внутри всех типов файлов).

Windows 7 может искать в файлах ключевое слово, но только текстовые файлы. ( *.doc, *.txt, *.inf, ...), а не ( *.conf, *.dat, *.*, ...).

Фильтры поиска Microsoft не содержат никаких фильтров, которые я могу использовать для этого.

Как это возможно?

251
Большинство ответов ниже бесполезны и не затрагивают вопрос, который был задан. Проблема, которую ОП четко объяснил, заключалась в том, что Windows Vista + не выполняет поиск содержимого определенных типов файлов (чтение файла **, расширения **). Как они четко сказали, некоторые работают, а другие нет. Например, он найдет файл `.txt`, который содержит слово, но не файлы` .cpp`, `.cfg`,` .php` или даже `.ini`, даже если они все текстовые (и Файлы `.ini` даже являются стандартными для Windows!) Эта проблема все еще существует, и, кажется, самое простое решение - [этот ответ] (http://superuser.com/a/374882/3279). Synetech 8 лет назад 2
MS Visual Studio имеет отличную функцию «найти в файлах». Без настройки - просто укажите критерии для более или менее мгновенных результатов. Почему это не в проводнике Windows, как «расширенный» вариант мне не подходит. omatai 6 лет назад 1

13 ответов на вопрос

129
Nikhil

Чтобы перейти к параметрам индексирования :

Пуск -> Панель управления -> Параметры индексирования

См. Изменение параметров расширенной индексации для получения дополнительной информации.

Если вы нажмете кнопку « Дополнительно» в разделе « Параметры индексирования» и перейдете на вкладку « Типы файлов », вы получите список типов файлов и порядок их индексации. Для типов файлов, которые вы хотите, вы можете указать, что вы хотите индексировать содержимое файла, а не только свойства файла.

Или вы можете просто выполнить обычный поиск, и после того, как поиск будет завершен, вы можете нажать кнопку «Содержимое файла» под полем «Поиск снова в» (которое находится после конца списка результатов поиска, если вы прокрутите до дно).

Исходя из этой страницы, опция «Содержимое файла» не всегда будет отображаться - только если папка, в которой выполняется поиск, не помечена для индексации содержимого файла; в этом случае содержимое файла предположительно ищется автоматически, без необходимости явно указывать эту опцию.

Или, может быть, с помощью команды FIND вместо. 14 лет назад 19
@Revolter, ты имеешь в виду команду FIND для командной строки? Это ищет только строку в одном, указанном файле; в нем не перечислены файлы, содержащие указанную строку. Synetech 13 лет назад 3
@Synetech inc. - вы можете передать результаты другой команды в `find`, поэтому нет причин, по которым вы не можете запустить ее на всем жестком диске (возможно, с помощью поиска` attrib`) warren 13 лет назад 4
@Synetechinc. Вы можете сказать: `найти" слово "*` Oscar Mederos 12 лет назад 8
Хм, я полагаю, использование компьютеров со старых времен имеет явный недостаток, заключающийся в том, что становится сложнее узнавать об обновлениях старых команд, если вы специально не делаете этого. (Это не первый раз, когда я узнаю о новых функциях старой команды DOS намного позже всех, включая людей, которые изучили их в Windows. `: - |`) Synetech 12 лет назад 1
@nikhil: К сожалению, вы не упоминаете, как добраться до параметров индексации, а также не ссылаетесь на страницу, на которую вы ссылаетесь. Steve 12 лет назад 5
@ Steve это элемент в панели управления. Вы также можете найти его, введя его в поле поиска в меню «Пуск». 12 лет назад 3
@Nikhil, есть ли способ поиска по файлам в неиндексированных местах? Shimmy 12 лет назад 1
-1, поскольку он не выполняет поиск в неиндексированных местоположениях, даже если выбран этот параметр. @ [Шимми] (http://superuser.com/users/9825/shimmy) Ответ Шона ниже. HaydnWVN 12 лет назад 8
@HaydnWVN он должен проверять неиндексированные местоположения. Ответ Seans также не работает для некоторых людей ... jiggunjer 8 лет назад 1
Я не использую индексатор, так что это ничего не исправляет. Synetech 8 лет назад 0
Использование Powershell (мне нравится, потому что я могу использовать полное регулярное выражение): Get-ChildItem -recurse * .config | Select-String -pattern "mystring" | групповой путь | выберите имя drizin 7 лет назад 1
Создал короткое видео для демонстрации того, как применить решение в этом ответе http://bit.ly/2p15Ipp Ron Harlev 7 лет назад 0
Слишком сложно. Проводнику Windows требуется кнопка «Дополнительно», которая подключается к функции «Найти в файлах», уже доступной в MS Visual Studio. Никаких настроек, только немедленные результаты. omatai 6 лет назад 0
113
twlichty

У меня всегда была лучшая производительность при поиске внутри файлов с помощью инструмента GREP. Я фанат АстроГреп .

AstroGrep худой и подлый. 80k, молниеносно, и поиск сетевых расположений. Спасибо за советы по этому инструменту. Sean O 14 лет назад 12
Вот это да!! это хорошо! Rodniko 12 лет назад 1
Также плагин здесь для агента Ransack. Встроенная оболочка, небольшая и быстрая, также поддерживает регулярные выражения. ingredient_15939 11 лет назад 4
[grepWin] (http://stefanstools.sourceforge.net/grepWin.html) - аналогично облегченный инструмент grep для Windows, который имеет различные параметры от AstroGrep, которые полезны в некоторых ситуациях. kevinmicke 10 лет назад 0
Отличный инструмент! Спасибо! Поиск Windows в файлах - это часть ... ну, вы знаете. Этот инструмент очень быстрый на моем диске SAS и работает безупречно. Нашел более 200 файлов, в которых окна поиска по содержимому нашли только 12 и не отображали то, что я искал, но я знал, что я ищу, и я был уверен в каталоге. Должен ли я сказать больше? Еще раз спасибо! GTodorov 9 лет назад 1
+1 для AstroGREP и +1 для AgentRansack ... +1 также для инструмента командной строки Cygwin grep ... ZEE 8 лет назад 1
Попробовал AstroGrep, и это кажется хорошим, но мне нужно было найти текст в файлах MS Word с расширением .docx, и, по-видимому, он исключает их по умолчанию. Без возможности переопределить! Cyberherbalist 7 лет назад 0
82
Sean Sexton

Полагаю, вы также можете просто ввести «content: blahblah» в поле фильтра поиска в верхнем правом углу Windows Explorer. Это работает по крайней мере для текстовых файлов и документов Office. Это также работает для исходных файлов.

Не похоже на работу ThomasMcLeod 12 лет назад 19
@ThomasMcLeod работает для меня, может быть, вам нужно "поиск в неиндексированных файлах" Avram 12 лет назад 0
Для Windows 7 это выглядит как содержание: не содержание: Jeff 12 лет назад 1
Я обнаружил, что он также локализован, на немецком языке, например, `inhalt:` mjustin 12 лет назад 17
'contents: $$$', где $$$ - это контент, который я ищу, работает для меня в Windows 7 HaydnWVN 12 лет назад 3
Похоже, что SP1 игнорирует содержимое: и содержимое: теперь, даже если оно по-прежнему становится синим; вместо этого вы должны нажать «Содержимое файла» внизу результатов поиска. SilverbackNet 11 лет назад 2
Не работает в Windows 7 32 бит. Я скопировал и вставил из файла в каталог, в котором выполняется поиск, и он сказал, что строка не найдена. weberc2 11 лет назад 4
Подсказка "content: blahblah" хорошо сработала для меня. У нас есть папка, содержащая несколько запросов SQL, и мы постоянно используем Notepad ++ для поиска в содержимом этого каталога определенных ключевых слов, имен таблиц и т. Д. Это ключевое слово поиска устраняет необходимость в этом шаге. [Примечание: это была единственная форма - контент против контента - которая работала для меня в Windows 10.] Jason H. 9 лет назад 2
Кажется, работает для HTML, JS, CSS, XML, SQL, но, к сожалению, ** не ** PHP. kcdwayne 9 лет назад 3
Поле не имеет значения, оба `content:` и `contents:` работают, но только для определенных типов файлов, таких как `.txt` и` .html`. Проблема в том, что он НЕ работает для других типов текстовых файлов, таких как `.cpp`,` .php`, `.cfg`, или, в этом отношении, даже` .ini`, который является типом, который поставляется с Windows. Synetech 8 лет назад 1
Это работает только с несколькими предопределенными типами файлов. Я не работаю с файлами .tex, которые, я уверен, известны как простые для поиска, текстовые файлы в течение десятилетий. Даже невозможно заставить поиск смотреть на эти файлы (`* .tex content: begin`), что довольно нелепо. mafu 7 лет назад 0
52
jet

Вы можете играть с findstr .

findstr /s /m searchstring *.* 

Описание параметров:

/S Searches for matching files in the current directory and all subdirectories. /M Prints only the filename if a file contains a match. 
@ Synetech Почему бы и нет? Его очень легко использовать, например, `findstr" todo "* .txt`. mafu 7 лет назад 0
/ i для нечувствительности к регистру также потенциально очень ценно. FINDSTR - единственный, ТОЛЬКО сторонний способ поиска ЧАСТИЧНЫХ строк. Если вы ищете goog, он будет совпадать с google.com, 123779goog44682 или 123google.com55, и, насколько мне известно, нет никакого способа, которым «окно поиска» папки / проводника Windows или Control-F может выполнить эту очень, очень простую, логическую задачу. Говоря о десятилетиях работы в области компьютерных разработок на высоком уровне C и Assembler, смейтесь или высмеивайте все, что вы хотите, но я заявляю вам: глупые дизайнеры Microsoft * не понимают компьютеры. * MicrosoftShouldBeKickedInNuts 5 лет назад 0
16
Rob Sedgwick

Notepad ++ может сделать это и является бесплатным. Найти в файлах CTRL- SHIFT- F.

13
snowdude

Агент Ransack всегда стоит посмотреть. Это бесплатно, быстро, хорошая репутация и не использует индексацию.

Примечание. Я использовал AR, но существуют некоторые лицензионные ограничения в отношении использования в личных и деловых целях. В целом, несмотря на то, что инструмент работает очень хорошо и дает тот вид фокуса поиска файлов, который нужен. John M 8 лет назад 0
9
Peter Mortensen

В проводнике Windows, меню Сервис -> Параметры папки:

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

Это, казалось, игнорировало эту опцию, потому что мой тип файла был настроен в параметрах индекса, чтобы не обрабатываться как текстовый файл. Файл `.properties` не находит текст по умолчанию. Richard Le Mesurier 11 лет назад 0
Это был единственный ответ на этой странице, который работал для меня. Мне также пришлось проверить опцию «Не использовать индекс при поиске ...». Fuhrmanator 10 лет назад 1
Не использует индексатор, поэтому это не решает проблему. Synetech 8 лет назад 0
7
Gunter Spranz

Windows 7 по-прежнему имеет возможность искать строки внутри файлов везде (а не в проиндексированных местах).

В проводнике Windows перейдите в меню «Инструменты / Параметры папки» и выберите «Всегда искать имена файлов и их содержимое».

Возможно, типы файлов по-прежнему должны быть правильно настроены в «Дополнительные параметры параметров индексирования».

+1 за параметры индексации. Это ОЧЕНЬ ВАЖНО, потому что они определяют, что означает Windows под «поиском» файла. Например, у меня есть файл сценария сборки ANT `.properties`, который Windows не будет искать, потому что он не настроен для обработки его как текстового файла. Richard Le Mesurier 11 лет назад 2
Странно, что параметры индексации влияют на неиндексированные поиски. jiggunjer 8 лет назад 0
Да, проблема заключается в типах, поэтому этот ответ был бы лучше, если бы он не закончился непосредственно перед упоминанием исправления. Synetech 8 лет назад 0
В Windows 10 этот параметр находится в меню * Вид * → * Параметры * → * Изменить папку и параметры поиска * → вкладка * Поиск *. Peter Mortensen 5 лет назад 0
6
Jeff Roe

Ответ Шона Секстона дал мне то, что я искал (поместив «content:» в текстовое поле поиска). Но я думаю, что следующее графическое объяснение может помочь другим.

Эквивалент этого поиска в XP Search Companion (собака):

XP Search Companion

это в Windows 7:

Windows 7 Search

У меня не сработало (с * .srt (файлы текстовых субтитров)). Aaron Thoma 8 лет назад 2
"content:" игнорируется ... просто сделайте тестовый поиск по одной и той же строке с и без "content:" и проверьте его ... ZEE 8 лет назад 0
@JeffRoe, я не могу заставить Windows искать внутри файлов `.sql`. Вы действительно получили ожидаемые результаты? Я не могу не заметить, что вы обрезали скриншот чуть выше результатов поиска ... Synetech 8 лет назад 1
@Synetech: Да, я определенно получил ожидаемые результаты. Извините, я не уверен, что будет отличаться в вашей системе, что помешает ее работе. Jeff Roe 8 лет назад 0
3
rifferte

Вы пытались найти в интернете правильный iFilter (например, http://www.ifilter.org/ )?

Если у вас есть подходящий iFilter, Windows должна иметь возможность искать и индексировать его содержимое.

мне нужен "iFilter" для каждого расширения файла? 14 лет назад 1
Скорее всего, да - поскольку каждое расширение файла предполагает, что содержимое файла будет определенным для конкретного расширения. rifferte 14 лет назад 0
Кроме того - просмотрите эти две ссылки - они содержат много контента, который должен вам помочь: http://www.microsoft.com/windows/products/winfamily/desktopsearch/technicalresources/filetypes.mspx http://gallery.live. ком / default.aspx? пл = 6 rifferte 14 лет назад 0
А что если я не использую индексатор, то что? Synetech 8 лет назад 0