Eu encontrei seu problema. o método FINDSTR procura por um arquivo como um local. Não consigo ver quais parâmetros você está usando, mas suponho que você não esteja inserindo um nome de arquivo no final do seu local. Você tem que usar curingas se quiser procurar em vários arquivos. Aqui está um exemplo do seu script que eu modifiquei e que parece funcionar bem:
@echo off
goto findstring
:stringnotfound
echo %string% not found in %location%
pause >nul
:findstring
set /p string=string:
set location=C:\test\*.*
findstr /i /p /m /s %string% %location%
if %errorlevel% == 1 goto stringnotfound
Observe que não estou inserindo o local por meio do prompt para que você possa ver a diferença. Estou usando o curinga para pesquisar em todos os arquivos.
Espero que isso ajude