Windows批处理:命令if

if命令是批处理程序中条件判断的命令,根据得出的判断结果,执行相对应的操作。
if命令基本有以下几种用法 。
1、判断指定的文件名是否存在
IF [NOT] EXIST filename command

@echo off
if not exist ./test.bat echo test.bat is not exist!
if exist ./temp.bat call temp.bat
pause

执行结果:

test.bat is not exist!
这是一个临时的测试批处理
请按任意键继续. . .

2、判断数值或者字符串相等
IF [/I] string1 compare-op string2 command
/I 开关(如果指定)说明要进行的字符串比较不分大小写
其中, compare-op 可以是:

EQU - 等于
NEQ - 不等于
LSS - 小于
LEQ - 小于或等于
GTR - 大于
GEQ - 大于或等于

@echo off

set "str1=this ia a test!"

set "str2=hello world!"

set num=100

if "%str1%"=="%str2%" (echo str1 等于 str2) else echo str1 不等于str2

if "%str2%" equ "Hello World!" (echo %str2% ) else (echo str2 不等于 Hello World)

if /i "%str2%" equ "Hello World!" (echo %str2% ) else (echo str2 不等于 Hello World)

if %num% equ 100 (echo num 等于 100) else echo num 不等于 100

 pause

执行结果:

str1 不等于str2
str2 不等于 Hello World
hello world!
num 等于 100
请按任意键继续. . .


3、结合 ERRORLEVEL使用
if errorlevel value command 含义:如果返回的错误码值大于或等于value时,将执行cmmand

@echo off

:START
choice /c YNC /m "确认请选Y,否请按N,取消按C." /T 3 /D C
if errorlevel 3 goto CANCEL
if errorlevel 2 goto NO
if errorlevel 1 goto YES

:YES
echo 你的选择是YES!
goto END

:NO
echo 你的选择是NO!
goto END

:CANCEL
echo 你的选择是CANCEL!

:END
goto START

pause


执行结果:

确认请选Y,否请按N,取消按C. [Y,N,C]?Y
你的选择是YES!
确认请选Y,否请按N,取消按C. [Y,N,C]?N
你的选择是NO!
确认请选Y,否请按N,取消按C. [Y,N,C]?C
你的选择是CANCEL!
确认请选Y,否请按N,取消按C. [Y,N,C]?

4、判官变量是否已经被定义

@echo off

set "str=this ia a test!"

set num=100

if defined str echo str 已经被定义了

if defined num echo num 已经被定义了

if not defined var echo var 没有被定义

pause

执行结果:

str 已经被定义了
num 已经被定义了
var 没有被定义
请按任意键继续. . .


5、else 使用的注意事项

ELSE 子句必须出现在同一行上的 IF 之后。例如:

IF EXIST filename. (
del filename.
) ELSE (
echo filename. missing.
)
由于 del 命令需要用新的一行终止,因此以下子句不会有效:

IF EXIST filename. del filename. ELSE echo filename. missing

由于 ELSE 命令必须与 IF 命令的尾端在同一行上,以下子句也
不会有效:

IF EXIST filename. del filename.
ELSE echo filename. missing

如果都放在同一行上,以下子句有效:

IF EXIST filename. (del filename.) ELSE echo filename. missing


原文链接:https://blog.csdn.net/ShiJian_ShaLou/article/details/85094532

posted @ 2022-06-05 14:18  sll917-cn  阅读(978)  评论(0编辑  收藏  举报