从 Windows CMD 我可以使用
findstr -m subroutine *.f90
Run Code Online (Sandbox Code Playgroud)
列出后缀为 .f90 且包含“子例程”的所有文件。要列出所有不包含字符串的 .f90 文件,我可以执行类似的操作
dir /b *.f90 > files.txt
findstr -m subroutine *.f90 > files_with_string.txt
Run Code Online (Sandbox Code Playgroud)
然后编写一个脚本来列出 files.txt 中在 files_with_string.txt 中找不到的行。有更优雅的方式吗?
中有一个/v选项findstr,但在这里没有帮助。
使用循环处理每个文件for,尝试查找字符串,如果没有找到它 ( ||),则回显文件名:
for %a in (*.f90) do @findstr "subroutine" "%a" >nul || echo %a
Run Code Online (Sandbox Code Playgroud)
(以上是命令行语法。要在批处理文件中使用,请使用%%a而不是%a(所有三个出现))