batch-file
If 문
수색…
통사론
if [/ i] StringToCompare1 == StringToCompare2 (commandA) else (commandB)
errorlevel 1 (commandA) else (commandB)
if % errorlevel % == 1 (commandA) else (commandB)
if 파일 이름 (commandA) else (commandB)
정의 된 경우 VariableName (commandA) else (commandB)
비고
if
문에서 선택할 수있는 구문이 있습니다. if string1==string2
를 예로 들어 사용합니다.
1 행 구문
-
if string1==string2 commandA
-
if string1==string2 (commandA)
-
if string1==string2 (commandA) else (commandB)
-
if string1==string2 (commandA) else commandB
-
if string1==string2 (commandA)else (commandB)
-
if string1==string2 (commandA)else commandB
다중 행 구문
if string1==string2 (
commandA
)
또는
if string1==string2 (
commandA
) else (
commandB
)
여전히 몇 가지 추가 구문을 사용할 수 있습니다.
IF 문과 숫자 비교하기
SET TEST=0
IF %TEST% == 0 (
echo TEST FAILED
) ELSE IF %TEST% == 1 (
echo TEST PASSED
) ELSE (
echo TEST INVALID
)
문자열 비교
IF "%~1" == "-help" (
ECHO "Hello"
)
여기서 %1
은 첫 번째 명령 줄 인수를 나타내고 ~
는 스크립트가 호출되었을 때 포함 된 따옴표를 제거합니다.
Errorlevel 비교
If Errorlevel 1 (
Echo Errorlevel is 1 or higher
REM The phrase "1 or higher" is used because If Errorlevel 1 statement means:
REM If %Errorlevel% GEQ 1
REM Not If %Errorlevel% EQU 1
)
또는
If "%Errorlevel%"=="1" (
Echo Errorlevel is 1
)
위의 스크립트는 변수 Errorlevel (내장)을 검사합니다. not
연산자를 사용할 수 있습니다.
Set "Test=%Errorlevel%"
If "%Test%" == "1" (
Echo Errorlevel is 1
)
이것도 작동합니다.
일부 명령 은 오류 수준에 영향을주지 않습니다 .
- 단절
- 에코
- 끝내기
- 에 대한
- 만약
- 중지
- 렘
- Rd / Rmdir
- 세트
- 표제
다음 명령은 errorlevel을 설정하지만 clear 상태는 아닙니다 .
- Cls
- 고토
- 열쇠
- 대중 음악
- 시프트
다음 명령 은 종료 코드를 설정하지만 errorlevel은 설정하지 않습니다 .
- Rd / Rmdir
다음 명령 은 errorlevel을 설정하지만 종료 코드는 설정하지 않습니다 .
- Md / Mkdir
파일이 있는지 확인하십시오.
If exist "C:\Foo\Bar.baz" (
Echo File exist
)
C : \ Foo \ Bar.baz 파일이 있는지 확인합니다. 존재할 경우 파일 존재 함 Not
연산자를 추가 할 수도 있습니다.
변수가 존재하거나 설정되면
If Defined Foo (
Echo Foo is defined
)
변수가 정의되어 있는지 확인합니다. 다시, Not
연산자를 사용할 수 있습니다.