2015-05-30 3 views
1

Когда я использую grep, я получаю список совпадающих результатов с полным пути к файлу для всех дочерних подкаталогов.Как сделать findstr показать полный путь к файлу в строке?

Когда я делаю это с findstr - я не получаю встроенные результаты.

Мой вопрос: Как я могу сделать findstr показать полный путь к файлу в строке?

ответ

3

Чтение FINDSTR Выход во всестороннем List of undocumented features and limitations of FINDSTR по Dave Benham ака dbenham:

... После печати имя_файла всегда будет включать в себя любой путь информацию. Дополнительная информация о пути будет добавлена, если используется опция /S. Печатный путь всегда относительный к предоставленному пути или относительно текущего каталога, если он не указан.

Следовательно, укажите абсолютный путь . Например: вместо

findstr /S /M /I /C:"string being searched for" *.txt 

использование

findstr /S /M /I /C:"string being searched for" "%CD%\*.txt" 

Конечно, все /S /M /I /C: переключатели, указанные в приведенном выше примере, являются опциональный:

d:\bat\files>findstr "success" *.txt 
netuser.txt:The command completed successfully. 
typeperf.txt:The command completed successfully. 

d:\bat\files>findstr "success" "%CD%\*.txt" 
d:\bat\files\netuser.txt:The command completed successfully. 
d:\bat\files\typeperf.txt:The command completed successfully. 
+0

Ссылка на оригинал цитата была бы неплохой, вот где SS64 получил информацию. Тем более, что исходный пост был на StackOverlow - http://stackoverflow.com/q/8844868/1012053. – dbenham

+0

Кроме того, я считаю, что OP хочет, чтобы имя файла начиналось перед каждой соответствующей строкой, что исключало бы опцию '/ M'. – dbenham

+0

@dbenham прошу простить мою тень на происхождение цитаты; см. мое редактирование на переключателе '/ M' :) – JosefZ

Смежные вопросы