Cela peut être une question stupide, mais même après avoir lu la documentation, je ne sais toujours pas comment trouver toutes les lignes d'un fichier contenant ".cpp" ou ".h".
Y-a-t-il un moyen de faire ça?
Par exemple (ne fonctionne pas):
findstr /i .cpp,.h // , == OR
windows
command-line-interface
findstr
Thomas Bonini
la source
la source
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 façon dont vous formez la
OR
logique dépend de ce que vous recherchez et de vos changements futurs prévus, le cas échéant.S'il s'agit d'une liste de requêtes qui ne contiennent aucun espace, vous pouvez simplement le faire comme ceci, rapide et sale:
findstr "thing1 thing2 thing3 thing4 thing5"
et si l'une de ces choses est présente, elle sera évaluée à true et quittera 0.Si ce que vous recherchez contient des espaces, vous devez utiliser
findstr
les chaînes de recherche littérale avec le/c:""
type de paramètre. Vous pouvez toujours utiliser ce type de paramètre s'il n'y a pas d'espace.Cependant , vous ne pouvez pas combiner littéral avec rapide et sale . Par exemple, cela ne fonctionnera pas:
findstr "thing1 thing2" /c:"thing3 thingy"
Vous devez convertir les paramètres précédents en paramètres littéraux, comme ceci:
findstr /c:"thing1" /c:"thing2" /c:"thing3 thingy"
Pour cette raison, il est préférable d'utiliser l'option littérale car elle évoluera mieux avec les scripts dynamiques. Cependant, s'il ne s'agit que d'un ensemble statique de requêtes sans espace, la méthode rapide et sale devrait suffire.
la source