Как узнать, содержит ли файл заданную строку, используя командную строку Windows - PullRequest
15 голосов
/ 12 апреля 2011

Я пытаюсь создать пакетный (.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

Есть идеи, как это можно сделать?

Ответы [ 2 ]

10 голосов
/ 15 августа 2013

Из другого поста:

    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 )
4 голосов
/ 25 марта 2014

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

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

Подробную информацию о параметрах можно найти на этой ссылке .

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...