Ответ 1
Вы должны использовать либо FIND, либо FINDSTR. Введите HELP FIND
и HELP FINDSTR
из командной строки, чтобы получить документацию. FIND очень прост и надежен. FINDSTR намного мощнее, но также и закалил. См. Каковы недокументированные функции и ограничения команды Windows FINDSTR? для получения дополнительной информации.
Вы не заботитесь о выходе любой из команд, поэтому вы можете перенаправить вывод на nul.
Обе команды устанавливают ERRORLEVEL в 0, если строка найдена, и 1, если строка не найдена. Вы можете использовать операторы &&
и ||
для условного выполнения кода в зависимости от того, найдена ли строка.
>nul find "Hello World" log.txt && (
echo "Hello World" was found.
) || (
echo "Hello World" was NOT found.
)
>nul findstr /c:"Hello World" log.txt && (
echo "Hello World" was found.
) || (
echo "Hello World" was NOT found.
)
Вы также можете проверить ERRORLEVEL в инструкции IF, но я предпочитаю синтаксис выше.