这可能是一个愚蠢的问题,但即使在阅读了文档之后,我仍然不确定如何在包含“.cpp”或“.h”的文件中找到所有行。
有没有办法做到这一点?
例如(不起作用):
findstr /i .cpp,.h // , == OR
这可能是一个愚蠢的问题,但即使在阅读了文档之后,我仍然不确定如何在包含“.cpp”或“.h”的文件中找到所有行。
有没有办法做到这一点?
例如(不起作用):
findstr /i .cpp,.h // , == OR
试一试,应该对你有用。
用引号括起来并用空格分隔。请注意,您还必须转义 . 在他们两个。
如果您需要包含短语(空格分隔的单词),您可以这样做:
或者,如果您得到一些不需要的行,您也可以使用
/v
参数排除它们:(在 Windows 7 和 Windows 10 上测试过)
您如何形成
OR
逻辑取决于您正在寻找什么以及您预期的未来变化(如果适用)。如果它是其中没有空格的查询列表,您可以这样做,快速而肮脏:
findstr "thing1 thing2 thing3 thing4 thing5"
如果存在任何这些东西,它将评估为 true 并退出 0。如果您要查找的内容确实有空格,则必须使用带有参数类型
findstr
的文字搜索字符串。/c:""
如果没有空格,您仍然可以使用这种类型的参数。但是,您不能将 literal 与 quick & dirty 结合起来。例如,这不起作用:
findstr "thing1 thing2" /c:"thing3 thingy"
您需要将较早的参数转换为文字参数,如下所示:
findstr /c:"thing1" /c:"thing2" /c:"thing3 thingy"
因此,使用文字选项是一种更好的做法,因为它可以更好地使用动态脚本进行扩展。但是,如果它只是一组没有空格的静态查询,那么快速而肮脏的方式就足够了。