명령줄에서 "findstr /b" 명령을 사용한 후 바로 다음 오류 수준 코드를 확인하면 정상적으로 작동합니다. 배치 파일에서 동일한 작업을 수행하면 오류 코드 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!
)