使用Windows findstr列出不包含字符串的文件

时间:2018-10-16 14:30:19

标签: cmd findstr

在Windows CMD中,我可以使用

findstr -m subroutine *.f90

列出后缀为.f90的所有包含“子例程”的文件。要列出所有不包含字符串的.f90文件,我可以做类似的事情

dir /b *.f90 > files.txt
findstr -m subroutine *.f90 > files_with_string.txt

,然后编写脚本以列出files.with_string.txt中找不到的files.txt中的行。有没有更优雅的方式?

1 个答案:

答案 0 :(得分:1)

/v中有一个findstr选项,但这在这里无济于事。
for循环处理每个文件,尝试查找字符串,如果找不到(||),则回显文件名:

for %a in (*.f90) do @findstr "subroutine" "%a" >nul || echo %a

(以上是命令行语法。要在批处理文件中使用,请使用%%a而不是%a(所有三种情况)