Как найти, содержит ли файл указанную строку с помощью командной строки Windows

Я пытаюсь создать пакетный (.bat) файл для Windows XP, чтобы сделать следующее:

If (file.txt contains the string 'searchString') then (ECHO found it!) 
ELSE(ECHO not found)

До сих пор я нашел способ поиска строк внутри файла с помощью команды FIND, которая возвращает строку в файле, где она находит строку, но я не могу выполнить условную проверку на нем.

Например, это не работает.

IF FIND "searchString" file.txt ECHO found it!

И это не делает:

IF FIND "searchString" file.txt=='' ECHO not found

Любые идеи о том, как это можно сделать?

Ответ 1

Смотрите этот пост.
Принятое решение кажется правильным для вас тоже.

Ответ 2

Из другого сообщения:

    find /c "string" file
    if %errorlevel% equ 1 goto notfound
    echo found
    goto done
    :notfound
    echo notfound
    goto done
    :done

Или что-то вроде: если не найдено запись в файл.

    find /c "%%P" file.txt  || ( echo %%P >> newfile.txt )

Или что-то вроде: если найдено запись в файл.

    find /c "%%P" file.txt  && ( echo %%P >> newfile.txt )

Или что-то вроде:

    find /c "%%P" file.txt  && ( echo found ) || ( echo not found )

Ответ 3

Для этого я использовал командную строку DOS. На самом деле две линии. Первый, чтобы сделать "текущую директорию" папку, в которой находится файл, или корневую папку группы папок, в которой находится файл. Вторая строка выполняет поиск.

CD C:\TheFolder
C:\TheFolder>FINDSTR /L /S /I /N /C:"TheString" *.PRG

Подробные сведения о параметрах можно найти в этой ссылке.

Надеюсь, что это поможет!