Thanks to Tripp Kinetics for providing the framework for this answer, but I wanted to be able to use built-in Windows commands, rather than install new software, since I will be distributing this to others on our team. With a little research, here's what I came up with:
SET SEARCH_COUNT=0
SET FOUND_COUNT=0
SET NOT_FOUND_COUNT=0
FOR /F "tokens=1" %%G IN (list_of_strings.txt) DO (
ECHO | SET /P unusedVar=Looking for %%G...
FINDSTR /ISPL /C:%%G "folder_to_search\*.*" >nul 2>&1
IF ERRORLEVEL 1 (
ECHO Not found
SET /A NOT_FOUND_COUNT=NOT_FOUND_COUNT+1
ECHO %%G >> not_found.txt
) ELSE (
ECHO Found!
SET /A FOUND_COUNT=FOUND_COUNT+1
ECHO %%G >> found.txt
)
SET /A SEARCH_COUNT=SEARCH_COUNT+1
)
ECHO(
ECHO Search complete.
ECHO(
ECHO Looked for %SEARCH_COUNT% strings
ECHO %FOUND_COUNT% found
ECHO %NOT_FOUND_COUNT% not found