Esta puede ser una pregunta estúpida, pero incluso después de leer la documentación todavía no estoy seguro de cómo encontrar todas las líneas en un archivo que contengan ".cpp" o ".h".
¿Hay una manera de hacerlo?
Por ejemplo (no funciona):
findstr /i .cpp,.h // , == OR
windows
command-line-interface
findstr
Thomas Bonini
fuente
fuente
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"
La forma en que forme la
OR
lógica depende de lo que esté buscando y de sus cambios futuros anticipados, si corresponde.Si se trata de una lista de consultas que no tienen espacios en blanco, puede hacerlo así, rápido y sucio:
findstr "thing1 thing2 thing3 thing4 thing5"
y si alguna de esas cosas está presente, se evaluará como verdadero y saldrá de 0.Si lo que está buscando tiene espacios en blanco, debe usar
findstr
las cadenas de búsqueda literales con el/c:""
tipo de parámetro. Todavía puede usar este tipo de parámetro si no hay espacios en blanco.Sin embargo , no puede combinar literal con rápido y sucio . Por ejemplo, esto no funcionará:
findstr "thing1 thing2" /c:"thing3 thingy"
Necesitaría convertir los parámetros anteriores a parámetros literales, así:
findstr /c:"thing1" /c:"thing2" /c:"thing3 thingy"
Debido a esto, es una mejor práctica usar la opción literal porque se escalará mejor con scripts dinámicos. Sin embargo, si es solo un conjunto estático de consultas que no tienen espacios en blanco, la forma rápida y sucia debería ser suficiente.
fuente