if

배치 프로그램에서 조건부 처리를 수행 합니다.

구문

if [not] ERRORLEVEL <number> <command> [else <expression>]
if [not] <string1>==<string2> <command> [else <expression>]
if [not] exist <filename> <command> [else <expression>]

명령 확장을 사용 하는 경우에 다음 구문을 사용 합니다.

if [/i] <string1> <compareop> <string2> <command> [else <expression>]
if cmdextversion <number> <command> [else <expression>]
if defined <variable> <command> [else <expression>]

매개 변수

매개 변수 설명
not 명령이 실행 되도록 조건이 false 인 경우에 지정 합니다.
Errorlevel <number> Cmd.exe에서 실행한 이전 프로그램이 숫자보다 크거나 같은 종료 코드를 반환한 경우에만 true 조건을 지정합니다.
<command> 앞의 조건을 충족 하는 경우 실행 되도록 하는 명령을 지정 합니다.
<string1>==<string2> string1과 string2가 동일한 경우에만 true 조건을 지정합니다. 이러한 값은 리터럴 문자열 또는 일괄 처리 변수(예: %1)일 수 있습니다. 리터럴 문자열을 따옴표로 묶습니다 필요가 없습니다.
존재 <filename> 지정 된 파일 이름이 있는 경우 참인 조건을 지정 합니다.
<compareop> 다음을 포함하여 세 글자 비교 연산자를 지정합니다.
  • EQU - 같음
  • NEQ - 같지 않음
  • LSS - 보다 작음
  • LEQ - 작거나 같음
  • GTR - 보다 큼
  • GEQ - 보다 크거나 같음
/i 강제로 문자열 대/소문자를 비교 합니다. if 형식으로 /istring1==string2 사용할 수 있습니다. 이러한 비교는 string1과 string2가 숫자 숫자로만 구성된 경우 문자열이 숫자로 변환되고 숫자 비교가 수행된다는 측면에서 제네릭입니다.
cmdextversion <number> 내부 버전 번호를 지정 된 숫자 보다 크거나 연결 Cmd.exe의 기능은 같은 명령 확장 된 경우에만 참이 지정 합니다. 첫 번째 버전은 1입니다. 명령 확장에 중요 한 향상 된 기능을 추가할 때 1 씩 증가 합니다. cmdextversion 조건부가 true 되지 명령을 경우 (기본적으로 확장을 사용 하는 명령) 확장을 사용할 수 있습니다.
defined <variable> 변수가 정의된 경우 true 조건을 지정합니다.
<expression> 명령에 전달 되는 명령줄 명령 및 매개 변수를 지정 된 다른 절.
/? 명령 프롬프트에 도움말을 표시합니다.

설명

  • if 절에 지정된 조건이 true이면 조건을 따르는 명령이 수행됩니다. 조건이 false이면 if 절의 명령이 무시되고 명령이 else 절에 지정된 모든 명령을 실행합니다.

  • 프로그램이 중지 되 면 종료 코드를 반환 합니다. 종료 코드를 조건으로 사용하려면 errorlevel 매개 변수를 사용합니다.

  • 사용 하는 경우 정의, 다음과 같은 세 개의 변수는 환경에 추가 됩니다: %errorlevel%, %cmdcmdline%, 및 %cmdextversion%합니다.

    • %errorlevel%: ERRORLEVEL 환경 변수의 현재 값에 대한 문자열 표현으로 확장됩니다. 이 변수는 ERRORLEVEL이라는 이름의 기존 환경 변수가 아직 없다고 가정합니다. 있는 경우 대신 ERRORLEVEL 값을 가져옵니다.

    • %cmdcmdline%: Cmd.exe에서 처리하기 전에 Cmd.exe에 전달된 원래 명령줄로 확장합니다. CMDCMDLINE이라는 이름의 기존 환경 변수가 아직 없다고 가정합니다. 있는 경우 해당 CMDCMDLINE 값을 대신 가져옵니다.

    • %cmdextversion%: cmdextversion의 현재 값에 대한 문자열 표현으로 확장합니다. CMDEXTVERSION이라는 이름의 기존 환경 변수가 아직 없다고 가정합니다. 있는 경우 해당 CMDEXTVERSION 값을 대신 가져옵니다.

  • 사용 해야는 다른 절 뒤의 명령과 동일한 줄에는 경우합니다.

예제

Product.dat 파일을 찾을 수 없는 경우 메시지를 표시하려면 다음을 입력합니다.

if not exist product.dat echo Cannot find data file

A: 드라이브의 디스크를 포맷 하 고 포맷 프로세스 동안 오류가 발생 하는 경우에 오류 메시지를 표시 하려면 배치 파일에서 다음 줄을 입력 합니다.

:begin
@echo off
format a: /s
if not errorlevel 1 goto end
echo An error occurred during formatting.
:end
echo End of batch program.

를 현재 디렉터리에서 Product.dat 파일을 삭제 하거나 Product.dat을 찾을 수 없는 경우 메시지를 표시 하려면 배치 파일에서 다음 줄을 입력 합니다.

IF EXIST Product.dat (
del Product.dat
) ELSE (
echo The Product.dat file is missing.
)

참고 항목

이 줄을 한 줄으로 다음과 같이 결합할 수 있습니다.

IF EXIST Product.dat (del Product.dat) ELSE (echo The Product.dat file is missing.)

배치 파일을 실행 한 후 ERRORLEVEL 환경 변수의 값을 에코 하려면 배치 파일에서 다음 줄을 입력 합니다.

goto answer%errorlevel%
:answer1
echo The program returned error level 1
goto end
:answer0
echo The program returned error level 0
goto end
:end
echo Done!

ERRORLEVEL 환경 변수의 값이 1보다 작거나 같은 경우 정상 레이블로 이동하려면 다음을 입력합니다.

if %errorlevel% LEQ 1 goto okay