level 13
幻虚道长🍭
楼主
IF 判断
全文原创,转载请注明出处:小程936
IF 条件 符合 [ELSE 不符合] 判断条件是否符合,并执行不同的命令。
IF NOT 条件 不符合
可以使用的条件
[/I] 文本A==文本B 判断两个文本是否完全相同。([/I]不区分大小写)
数字A 判断条件 数字B 判断两个数字的关系。(判断条件可以是EQU等于;NEQ不等于;LSS小于;LEQ小于或等于;GTR大于;GEQ大于或等于)
DEFINED 变量名 判断某变量是否存在。
EXIST 文件路径 判断某文件是否存在。
ERRORLEVEL 数字 判断%ERRORLEVEL%是否 大于或等于 数字。(通常情况下,若上一条命令执行成功,%ERRORLEVEL%的值为0,若未成功,值不为0)
CMDEXTVERSION 数字 判断%CMDEXTVERSION%是否 大于或等于数字。(%CMDEXTVERSION%为cmd的版本号)
详细解释
[/I] 文本A==文本B
不区分大小写 文本相同判断
注:文本A 和 文本B 均不能留空,可参考
#文本A==#
文本B 或 "文本A"=="文本B" 规避错误
注:文本若包含空格需用""括起来,文本不得包含/ \符号,牢记中间有两个等于号==
数字A 判断条件 数字B
判断两个数字的关系
EQU NEQ LSS LEQ GTR GEQ
= ≠ < ≤ > ≥
等于 不等于 小于 小于或等于 大于 大于或等于
注:必须纯数字,不能留空,不得包含任何特殊符号(包含特殊符号将造成计算逻辑错误)
注:严禁将数字使用双引号括起来!不得包含任何特殊符号!否则肯定计算错误!
错误示例 IF "33" GTR "159" (echo 33比159大) ELSE (echo 159比33大)
正确写法 IF 33 GTR 159 (echo 33比159大) ELSE (echo 159比33大)
注:关于留空错误,可以通过 set /a a=a,b=b 将空变量赋值为0解决。
IF 条件 (符合) ELSE (不符合)
启用可选项 不符合 之后建议用括号把命令括起来(如上所示)
注:建议在右括号之前留一空格。示例:(goto 1 )
注: ELSE 两边必须留一空格。示例:) ELSE (
即使没有这个条件(数字A 判断条件 数字B),比较数字大小也非常容易
@echo off
:1
set /p n="请输入n="
set /p m="请输入m="
set /a a=n-m,b=m-n
echo 举几个例子,根据两数差是否带负号来判断两数大小关系。
if %n%==%m% (echo %n%等于%m%) else (echo %n%不等于%m%)
if %a%==%b% (echo %n%等于%m%) else (echo %n%不等于%m%)
if %a:~,1%==- (echo %n%小于%m%) else (echo %n%大于或等于%m%)
if %b:~,1%==- (echo %n%大于%m%) else (echo %n%小于或等于%m%)
echo 再举几个not的例子。
if not %n%==%m% (echo %n%不等于%m%)
if not %a:~,1%==- (echo %n%大于或等于%m%)
if not %b:~,1%==- (echo %n%小于或等于%m%)
echo 也可以嵌套到一起。
if %a:~,1%==- (echo %n%小于%m%) else if %a%==%b% (echo %n%等于%m%) else (echo %n%大于%m%)
pause && goto 1
2016年06月02日 12点06分
1
全文原创,转载请注明出处:小程936
IF 条件 符合 [ELSE 不符合] 判断条件是否符合,并执行不同的命令。
IF NOT 条件 不符合
可以使用的条件
[/I] 文本A==文本B 判断两个文本是否完全相同。([/I]不区分大小写)
数字A 判断条件 数字B 判断两个数字的关系。(判断条件可以是EQU等于;NEQ不等于;LSS小于;LEQ小于或等于;GTR大于;GEQ大于或等于)
DEFINED 变量名 判断某变量是否存在。
EXIST 文件路径 判断某文件是否存在。
ERRORLEVEL 数字 判断%ERRORLEVEL%是否 大于或等于 数字。(通常情况下,若上一条命令执行成功,%ERRORLEVEL%的值为0,若未成功,值不为0)
CMDEXTVERSION 数字 判断%CMDEXTVERSION%是否 大于或等于数字。(%CMDEXTVERSION%为cmd的版本号)
详细解释
[/I] 文本A==文本B
不区分大小写 文本相同判断
注:文本A 和 文本B 均不能留空,可参考
#文本A==#
文本B 或 "文本A"=="文本B" 规避错误
注:文本若包含空格需用""括起来,文本不得包含/ \符号,牢记中间有两个等于号==
数字A 判断条件 数字B
判断两个数字的关系
EQU NEQ LSS LEQ GTR GEQ
= ≠ < ≤ > ≥
等于 不等于 小于 小于或等于 大于 大于或等于
注:必须纯数字,不能留空,不得包含任何特殊符号(包含特殊符号将造成计算逻辑错误)
注:严禁将数字使用双引号括起来!不得包含任何特殊符号!否则肯定计算错误!
错误示例 IF "33" GTR "159" (echo 33比159大) ELSE (echo 159比33大)
正确写法 IF 33 GTR 159 (echo 33比159大) ELSE (echo 159比33大)
注:关于留空错误,可以通过 set /a a=a,b=b 将空变量赋值为0解决。
IF 条件 (符合) ELSE (不符合)
启用可选项 不符合 之后建议用括号把命令括起来(如上所示)
注:建议在右括号之前留一空格。示例:(goto 1 )
注: ELSE 两边必须留一空格。示例:) ELSE (
即使没有这个条件(数字A 判断条件 数字B),比较数字大小也非常容易
@echo off
:1
set /p n="请输入n="
set /p m="请输入m="
set /a a=n-m,b=m-n
echo 举几个例子,根据两数差是否带负号来判断两数大小关系。
if %n%==%m% (echo %n%等于%m%) else (echo %n%不等于%m%)
if %a%==%b% (echo %n%等于%m%) else (echo %n%不等于%m%)
if %a:~,1%==- (echo %n%小于%m%) else (echo %n%大于或等于%m%)
if %b:~,1%==- (echo %n%大于%m%) else (echo %n%小于或等于%m%)
echo 再举几个not的例子。
if not %n%==%m% (echo %n%不等于%m%)
if not %a:~,1%==- (echo %n%大于或等于%m%)
if not %b:~,1%==- (echo %n%小于或等于%m%)
echo 也可以嵌套到一起。
if %a:~,1%==- (echo %n%小于%m%) else if %a%==%b% (echo %n%等于%m%) else (echo %n%大于%m%)
pause && goto 1