从原始字符串批处理脚本中查找多个字符串匹配项

Find multiple string matches from the original string batch script

我目前在一个文件夹中有一个文件列表,我需要遍历这些文件并排除与模式匹配的非生产文件。我如何在批处理命令中搜索多个字符串?

例如我有文件

我需要从上面的列表中排除所有包含单词“dev”和 QA“Stg”的文件,并生成不含它们的文件列表 - 即

问题是 - 我找不到任何可以对多个字符串执行等效 grep 的批处理命令。 FindStr 只对一个字符串执行此操作,因此我无法使其正常工作。这是我的代码

set i=0
for /F "delims=" %%a in ('dir /B /A /S Path *.txt') do (
   set /A i+=1
rem put the file names in array
   set list[!i!]=%%~na
rem try to find the file names 
echo %%~na|find "dev" or "qa" or "stg" >nul
if errorlevel 1 (echo notfound) else (echo found %%~na )
  
)

谢谢大家的回复。 我能够通过以下方式做到这一点

echo %%~na|findstr /i /v "dev QA Stg" >nul
if errorlevel 1 (echo not found %%~na) else (echo %%~na>>newfile.txt)