Windows 批处理(bat) if条件判断语句使用教程

  • Post author:
  • Post category:其他




基本描述

在bat脚本中,if条件判断语句共有6种比较操作符,分别为

操作符(不区分大小写) 描述 全称
equ 等于 equal
neq 不等于 no equal
lss 小于 less than
leq 小于等于 leq less than or equal
gtr 大于 greater than
geq 大于等于 geq greater than or equal

其中,只有等于操作符可以使用符号 “==” 表示,其他操作符只能使用英文简写

当参与比较的字符串是字符串时,将被转换为对于的ASCII码进行比较



If指令基本格式


指令格式为:if 条件表达式 (…)


注意:

  1. 英文缩写的比较操作符,左右两边必须有空格;

    “==”两侧可以不加空格
  2. 比较表达式和()之间必须有空格
@echo off
Set inputValue=15
if %inputValue%==15 (echo %inputValue%等于15) 
if %inputValue% equ15 (echo %inputValue%等于15)
pause

请添加图片描述



指令参数

判断

字符串

是否相等的时候,if语句会

区分大小写



参数”/I(i)”

可以在比较字符串时串

忽略大小写

@echo off

if "abc"=="ABC" (
	echo 大小相等
) else (
	echo 大小不等
)

if /i "abc"=="ABC" (
	echo 大小相等
) else (
	echo 大小不等
)
pause

在这里插入图片描述



多分支语句 if else if



1. if else if均在一行

@echo off
set inputValue=15
if %inputValue% gtr 100 (echo %inputValue%大于100) else if %inputValue% gtr 10 (echo %inputValue%大于10) else (echo %inputValue%小于或等于10) 
pause

请添加图片描述



2. 右括号“(” 和else if 多行


右括号”)”与 else之间空格可忽略

@echo off

set inputValue=23

if %inputValue% gtr 100 (
	echo 大于100
) else if %inputValue% gtr 10 (
	echo 大于10
) else if %inputValue% gtr 0 (
	echo 大于0
)
pause



3. if 和 else if多行


右括号”)”后需跟 “^”

@echo off

set inputValue=23

if %inputValue% gtr 100 (
	echo 大于100
)^
else if %inputValue% gtr 10 (
	echo 大于10
)^
else if %inputValue% gtr 0 (
	echo 大于0
)
pause



If条件语句拓展功能



1. If exist


判断驱动器、文件夹或文件是否存在



注意:if后的变量要加 %%

@echo off

set filepath=C:\
if exist %filepath% (
	echo %filepath%存在
)
if not exist %filepath% (
	echo %filepath%不存在
)

set filepath=C:\Users\Administrator\Desktop
if exist %filepath% (
	echo 路径%filepath%存在
) else (
	echo 路径%filepath%不存在
)

set sourcefile=C:\Users\Administrator\Desktop\test.bat
if exist %sourcefile% (
	echo 文件%sourcefile%存在
) else (
	echo 文件%sourcefile%不存在
)

pause



2. If defined


判断某个变量是否已经被赋值

注意:if后的变量 不能加 %%

@echo off

set /p filepath=请输入:
if defined filepath (
	echo filepath存在
)

if not defined filepath (
	echo filepath不存在
)

pause



3. if结合errorlevel使用

结果判断,说明:环境变量errorlevel的初始值为0,当一些命令执行不成功,就会返回一个数值,如:1 ,2 等

@echo off

rem call "D:\VS Code\Microsoft VS Code\Code.exe"

call  C:\Users\Administrator\Desktop\printf.bat

if %errorlevel%  == 0 (
	echo 前条执行成功
) else (
	echo 前条执行失败
)

pause



版权声明:本文为m0_56208280原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。