Найти строку в каждом файле папки с циклом for

Я пытаюсь найти строку "Blabla" внутри файла. Если я нахожу строку, которую я эхо нашел, если нет, я эхо не нашел. И я хочу сделать эту операцию для всех файлов, которые у меня есть в папке.

Когда я применяю скрипт к одному файлу, он работает хорошо. Когда я использую цикл for, он не работает. он не входит в цикл for

Вот мой сценарий:

    set "Var1=blabla"

FOR %%i IN (C:UsersUserNameDesktopTEST*.txt) DO (

        find /c "%Var1%" %%i
        echo errorlevel=%errorlevel% %%i
        if %errorlevel% equ 1 goto notfound
        echo found
        goto done
        :notfound
        echo notfound
        goto done
        :done
)

Можете ли вы определить, где проблема?

Всего 1 ответ


Почему бы просто не перечислить все файлы, в которых есть строка, и исключить файлы, в которых ее нет? Это кажется мне более очевидным планом:

@echo off
set "search=blabla"
for /f "delims=" %%i in ('findstr /m %search% "%USERPROFILE%DesktopTEST*.txt"') do (
  echo found "%search%" in "%%~fi"
)

Если вы хотите показать файлы, которые не содержат путь, то @stephan уже опубликовал комментарий о том, как, мне не нужно повторяться.


Есть идеи?

10000