К И шаблоны анализируют результаты первого findstr с for /f
@Echo off
for /f "delims=" %%A in (
'findstr /m /i "Pattern1" *.txt 2^>Nul'
) do findstr /mi "Pattern2" %%A 1>Nul 2>&1 && Echo %%A matches both Patterns
Если два шаблона появляются в порядке в одной строке, вы можете иметьодно регулярное выражение типа
findstr /m /i "Pattern1.*Pattern2" *.txt
В противном случае возможности регулярного выражения findstr весьма ограничены.