Все, что вам нужно, это следующее:
findstr /m /c:toFind *
Он будет искать каждый файл в вашем текущем каталоге и распечатывать имена файлов, которые содержат строку поиска.
Если вы хотите найти папку, отличную от текущей, то:
pushd "c:\yourPath"
findstr /m /c:toFind *
popd
Если вы хотите включить полный путь каждого файла в вывод, то:
findstr /m /c:toFind "c:\yourPath\*"
Правильный способ использовать цикл FOR для итерации файлов, как вы изначально предполагали:
for %%F in (*) do findstr /m /c:toFind "%%F"
Но нет необходимости использовать FOR для итерации файлов, когда FINDSTR может итерировать файлы самостоятельно.
Команда FOR является самой сложной командой, доступной для пакетной обработки. Есть много разных форм, которые делают совершенно разные вещи. Здесь только несколько:
for %%A in (file list with wildcard support) - iterate files
for /f "options" %%A in (filePath) - read and parse a file
for /f "options" %%A in ("string") - parse a string
for /f "options" %%A in ('someCommand') - parse the output of a command
Вы должны внимательно прочитать документацию. Введите HELP FOR
или FOR /?
из командной строки, чтобы получить документацию.