Это может быть глупым вопросом, но даже после прочтения документации я все еще не уверен, как найти все строки в файле, который содержит «.cpp» или «.h».
Есть ли способ сделать это?
Например (не работает):
findstr /i .cpp,.h // , == OR
windows
command-line-interface
findstr
Томас Бонини
источник
источник
FindStr /I /R /C:"Hosted" /C:"Version /C:"Driver[^S]" | FindStr /v /i /c:"Native"
FindStr /V /I /C:"Native" /C:"Drivers" | FindStr /I /R /C:"Hosted" /C:"Version /C:"Driver"
То, как вы формируете
OR
логику, зависит от того, что вы ищете, и от ваших ожидаемых будущих изменений, если это применимо.Если это список запросов, в которых нет пробелов, вы можете просто сделать это, быстро и грязно:
findstr "thing1 thing2 thing3 thing4 thing5"
и если какая-либо из этих вещей присутствует, она оценивается как true и завершается 0.Если то, что вы ищете, имеет пробел, вы должны использовать
findstr
буквенные строки поиска с/c:""
типом параметра. Вы все еще можете использовать этот тип параметра, если пробелов нет.Тем не менее , вы не можете комбинировать буквальным с Быстрым и грязным . Например, это не будет работать:
findstr "thing1 thing2" /c:"thing3 thingy"
Вам нужно будет преобразовать более ранние параметры в буквальные параметры, например, так:
findstr /c:"thing1" /c:"thing2" /c:"thing3 thingy"
Из-за этого лучше использовать буквенную опцию, потому что она будет лучше масштабироваться динамическими сценариями. Однако, если это просто статический набор запросов без пробелов, быстрого и грязного способа должно быть достаточно.
источник