다음을 통해 공유


if

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

Syntax

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>]

Parameters

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

Remarks

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

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

  • defined를 사용하는 경우 %errorlevel%, %cmdcmdline%%cmdextversion%세 가지 변수가 환경에 추가됩니다.

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

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

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

  • if 뒤의 명령과 동일한 줄에서 else 절을 사용해야 합니다.

Examples

메시지 파일 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.
)

Note

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

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