При использовании команды "findstr /b" в командной строке и последующей проверке кода errorlevel все работает нормально. Когда я делаю то же самое в пакетном файле, он возвращает только код ошибки 0.
Пример:
myfile.txt содержит значение "E2B-01-07,5974,3211"
findstr /b XXX myfile.txt
echo %errorlevel%
Этот код неправильно отобразит 0 в пакетном файле, но правильно отобразит 1 в командной строке.
решение1
если вы делаете это в блоке скобок (цикл FOR, блок IF), то вам нужно иметьотсроченное расширениевключено перед структурой:
setlocal enabledelayedexpansion
и используйте восклицательные знаки вокруг имени переменной -!errorlevel!
например
@echo off
setlocal enabledelayedexpansion
for %%A in (*.txt) do (
echo File: %%A
findstr /b "E2B-01-07,5974,3211" "%%A"
echo Errorlevel: !errorlevel!
)