To może być głupie pytanie, ale nawet po przeczytaniu dokumentacji wciąż nie jestem pewien, jak znaleźć wszystkie wiersze w pliku zawierającym „.cpp” lub „.h”.
Czy jest na to sposób?
Na przykład (nie działa):
findstr /i .cpp,.h // , == OR
To może być głupie pytanie, ale nawet po przeczytaniu dokumentacji wciąż nie jestem pewien, jak znaleźć wszystkie wiersze w pliku zawierającym „.cpp” lub „.h”.
Czy jest na to sposób?
Na przykład (nie działa):
findstr /i .cpp,.h // , == OR
Odpowiedzi:
Jeśli potrzebujesz dołączyć frazy (słowa oddzielone spacją), możesz to zrobić:
findstr /i /c:"IBSS" /c:"WDI Version" /c:"Soft Ap"
Lub jeśli otrzymujesz niechciane wiersze, możesz je wykluczyć również za pomocą /v
parametru:
findstr /i /c:Hosted /c:Version /c:Driver | findstr /v /i /c:drivers /c:native
(Przetestowano to w systemie Windows 7 i Windows 10)
FindStr /V /I /C:"Native" /C:"Drivers" | FindStr /I /R /C:"Hosted" /C:"Version /C:"Driver"
Sposób formowania OR
logiki zależy od tego, czego szukasz i przewidywanych przyszłych zmian, jeśli dotyczy.
Jeśli jest to lista zapytań, w których nie ma spacji, możesz to zrobić w następujący sposób, szybko i brudnie:
findstr "thing1 thing2 thing3 thing4 thing5"
a jeśli którakolwiek z tych rzeczy będzie obecna, oceni to na true i wyjdzie z 0.
Jeśli to, czego szukasz, ma spacje, musisz użyć findstr
dosłownych ciągów wyszukiwania z /c:""
typem parametru. Możesz nadal używać tego typu parametru, jeśli nie ma białych znaków.
/C:string Uses specified string as a literal search string.
Jednakże , nie można połączyć dosłowne z Szybko i po łebkach . Na przykład to nie zadziała:
findstr "thing1 thing2" /c:"thing3 thingy"
Musisz przekonwertować wcześniejsze parametry na parametry dosłowne, na przykład:
findstr /c:"thing1" /c:"thing2" /c:"thing3 thingy"
Z tego powodu lepszym rozwiązaniem jest użycie opcji dosłownej, ponieważ lepiej skaluje się ona za pomocą skryptów dynamicznych. Jednak jeśli jest to tylko statyczny zestaw zapytań, które nie mają spacji, wystarczy szybki i brudny sposób.
FindStr /I /R /C:"Hosted" /C:"Version /C:"Driver[^S]" | FindStr /v /i /c:"Native"