Команда findstr ms-dos не будет искать подкаталоги

Мне пришлось отключить индексацию поиска Windows в Windows 7, так как старый жесткий диск постоянно шумел при включенной индексации!

Теперь я хочу использовать командную строку Windows для поиска определенного текстового термина во всех файлах, расположенных в текущем каталоге и подкаталогах

Как использовать команду Windows findstr для поиска в подкаталогах?

В настоящее время, когда я открываю командную строку и меняю каталог на C:\Users\Damien\Documents\Research\2012July и запускаю команду findstr "thesis" *.tex /S, я получаю следующую ошибку:

FINDSTR: Cannot open /s

Эта команда будет искать в текущем каталоге, если я удалю /S, но я также хочу иметь возможность искать текст во вложенных папках.


person DeadlyDan    schedule 01.02.2012    source источник
comment
Публикация в качестве комментария, поскольку я знаю, что это не тот ответ, который вам нужен, но: установите Cygwin (www.cygwin.org), и у вас будет полный набор последовательных, функциональных, хорошо документированных инструментов командной строки, которые всегда просто Работа. Команда UNIX find бесконечно более гибкая и мощная -- и, конечно же, здесь можно делать то, что вы хотите.   -  person Ernest Friedman-Hill    schedule 01.02.2012


Ответы (2)


Вам нужно поставить /S в начале, т.е.:

findstr /S "thesis" *.tex

Из встроенной справки:

C:\>findstr /?
Searches for strings in files.

FINDSTR [/B] [/E] [/L] [/R] [/S] [/I] [/X] [/V] [/N] [/M] [/O] [/P] [/F:file]
        [/C:string] [/G:file] [/D:dir list] [/A:color attributes] [/OFF[LINE]]
        strings [[drive:][path]filename[ ...]]

Ваши модификаторы/переключатели, как бы они ни назывались, должны располагаться перед шаблоном/строкой.

person jon    schedule 01.02.2012
comment
@Jon Как бы я структурировал синтаксис, если бы я также хотел указать путь (например, findstr /S some_string *.txt PATH?), где и как я бы указал путь к папке с подпапками, которые я хочу найти. Спасибо - person IberoMedia; 16.10.2013

У вас есть аргументы в неправильном порядке, попробуйте следующее:

findstr /S "thesis" *.tex
person PowerApp101    schedule 01.02.2012