For a single directory:
for %a in (*.*) do find /i "string to search for"
Will do the job. Otherwise, you can do something like
dir /s /b *.txt > filelist.txt
to get a recursive list and then
for /f %a in (filelist.txt) do find /i "string to search for"
You can also use && and || to specify other things like && echo %a to echo the file name. . . will work, but might not be as fast as recursive grep.