다음을 통해 공유


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에서 실행한 이전 프로그램에서 number 이상의 종료 코드를 반환한 경우에만 true 조건을 지정합니다.
<command> 앞의 조건을 충족 하는 경우 실행 되도록 하는 명령을 지정 합니다.
<string1>==<string2> string1string2가 동일한 경우에만 true 조건을 지정합니다. 리터럴 문자열이나 일괄 처리 변수(예: %1)가 이러한 값일 수 있습니다. 리터럴 문자열을 따옴표로 묶습니다 필요가 없습니다.
exist <filename> 지정 된 파일 이름이 있는 경우 참인 조건을 지정 합니다.
<compareop> 다음을 포함하는 세 글자 비교 연산자를 지정합니다.
  • EQU - 같음
  • NEQ - 같지 않음
  • LSS - 미만
  • LEQ - 이하
  • GTR - 초과
  • GEQ - 이상
/i 강제로 문자열 대/소문자를 비교 합니다. /iifstring1==string2 형식으로 사용할 수 있습니다. 이러한 비교는 string1string2 둘 다 숫자값으로만 구성된 경우 문자열이 숫자로 변환되고 숫자 비교가 수행되므로 이러한 비교는 일반적인 비교입니다.
cmdextversion <number> 내부 버전 번호를 지정 된 숫자 보다 크거나 연결 Cmd.exe의 기능은 같은 명령 확장 된 경우에만 참이 지정 합니다. 첫 번째 버전은 1입니다. 명령 확장에 중요 한 향상 된 기능을 추가할 때 1 씩 증가 합니다. cmdextversion 조건부가 true 되지 명령을 경우 (기본적으로 확장을 사용 하는 명령) 확장을 사용할 수 있습니다.
defined <variable> 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 이하인 경우 okay 레이블로 이동하려면 다음을 입력합니다.

if %errorlevel% LEQ 1 goto okay