Подтвердить что ты не робот

Как я (рекурсивно) искать ВСЕ содержимое файла в Windows 7?

Как я (рекурсивно) искать содержимое все в Windows 7? Я использую команду content:xxx в поле Search settings в проводнике Windows для поиска xxx в этом примере. Это не работает:

В качестве примера того, как этот поиск нарушен, я вижу файл org.eclipse.wst.common.component с текстом, который я ищу, и Windows 7 не возвращает его в результатах. Я предполагаю, что это только поиск известных текстовых типов файлов. Как я могу заставить его искать все файлы? Мне нужно найти все, что я ищу.

P.S. Если есть решение на основе DOS, я также соглашусь с этим. Возможно, может быть создан командный файл с использованием dir /s /b и findstr.

РЕДАКТИРОВАТЬ: Отметили мою потребность в рекурсивном поиске.

4b9b3361

Ответ 1

Вот мое решение трех файлов DOS, но я все еще ищу подходящее решение для Windows 7, если у кого-то есть:

1. search.bat

@ECHO off
FOR /r %%a IN (*.*) DO CALL process.bat %%a

Искажает все файлы рекурсивно и запускает process.bat для каждого из них.

2. process.bat

@ECHO Off
ECHO "%1" >> output.txt
TYPE "%1" | FINDSTR /i "search_string_here" >> output.txt

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

3. output.txt(выходной образец)

Содержит вывод, отформатированный следующим образом: search_string_here в моем проекте project_name Java, хранящемся в D:\project_name\, отображающем все найденные файлы, а также результаты, если они есть:

"D:\project_name\.classpath" 
"D:\project_name\.project" 
    <name>search_string_here</name>
"D:\project_name\content_search_all_files.bat" 
"D:\project_name\output.txt" 
    <name>search_string_here</name>
"D:\project_name\pom.xml" 
...

Выше видно, что search_string_here был найден, полная строка <name>search_string_here</name>, в файле D:\project_name\.project... среди других результатов.

Опять же, я все еще ищу подходящее решение для Windows 7, если у кого-то есть.

Предупреждение: "Линия слишком длинная" Ошибки; FINDSTR может быть ошибочным:

По-видимому, FINDSTR < grep, как будто вы не знали. Здесь статья, которая погружается в ошибку в FINDSTR, которые не воспроизводятся, когда один и тот же ввод используется в другом файле:

Очевидно, что "строка слишком длинная" - это сообщение "catch-all" для ряда разные ошибки. У FINDSTR есть некоторые проблемы. Некоторое время назад я сказал, что FINDSTR был крайне полезен. После сегодняшнего дня Id говорит, что он еще меньше чем я думал, что это было тогда. - http://blog.mischel.com/2008/10/14/copying-large-files-on-windows/

Ответ 2

"user3245549" является правильным:

Все приведенные выше ответы с "для циклов" и вложенными файлами bat - это mumbo jumbo. Все, что вам нужно, это просто использовать "findstr" - пример:

C:\temp> findstr /S /C:"/work" * | more   <-- this will find the string "/work" in any file

или

C:\temp> findstr /S /C:"/work" "*.*" | more 

или

C:\temp> findstr /S /C:"/work" * > results.txt

или

C:\temp> findstr /S /C:"/work" "*.*" > results.txt

ПРИМЕЧАНИЕ. Вы можете оставить "двойные кавычки" вокруг звездочек - я просто поместил их, потому что редактор здесь, на Stackoverflow, удалял звездочки по обе стороны от периода. ПРИМЕЧАНИЕ ТАКЖЕ: Вам все равно нужны кавычки вокруг "текстового текста", для которого вы ищете, насколько мне известно.

Ответ 3

Если вы ищете решение на основе графического интерфейса, в котором вам не нужно запоминать синтаксис, попробуйте Notepad ++. Существует меню "Поиск", которое позволяет вам искать файлы в каталоге (находить в файлах), ограничивать его определенными расширениями (фильтром) и искать в подпапках, а затем просто нажимать на элемент в списке, и он открывает этот файл для редактирования.

Ответ 4

Используйте команду findstr в окне командной строки.

/s дает вам рекурсивный поиск

/i игнорирует случай

Ответ 5

Это можно сделать с помощью командной строки, хотя синтаксис довольно подробный

for /r %a in (\*.*) do find "search_text" %a

Теперь это работает в Windows 7 (дополнительная точка удалена)

Ответ 6

Если вы ищете файл или папку, расположенную в общей папке (например, документы или рисунки), вы часто можете найти ее быстрее, используя поле поиска в верхней части окна папки. Дополнительные сведения см. В разделе Использование окна поиска. Здесь.

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

Если вы ищете несколько связанных файлов, таких как все файлы определенного месяца или все написанные вами документы, вы можете использовать заголовки над списком файлов для фильтрации, стека или группировки файлов, Организация ваших файлов одним из этих способов облегчает их поиск и выбор. Дополнительные сведения см. В разделе Использование заголовков списка файлов. Здесь

Когда вам нужно создать поиск с несколькими фильтрами или когда вы ищете файлы из нескольких папок сразу, создайте свой поиск в папке поиска. Когда вы закончите, вы можете сохранить критерии поиска и использовать его в будущем, чтобы найти один и тот же набор файлов заново одним щелчком мыши. Дополнительные сведения см. В разделе "Создание расширенного поиска в папке поиска". Здесь