• 【WINDOWS / DOS 批处理】if命令中的比较运算符


      if命令参数详解(一)

      if命令参数详解(二)

    IF命令中,使用比较运算符的命令格式如下:

    (一) IF [NOT] string1 == string2 command 

    (二) IF [/I]  [NOT]  string1 compare-op string2 command

    其中, compare-op 可以是:

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

      注意:compare-op 忽略大小写 

    在CMD.EXE禁用命令扩展模式下,只能使用 (一)

    在CMD.EXE启用命令扩展模式下, (一)(二)均可使用

    1、如果 string1 和  string2 均为单个字符,则比较的规则如下:

    • 特殊字符小于数字
    • 数字小于字母
    • 同一个字母,小写字母小于大写字母
    • 不同的字母,按照字母表中的顺序排列。
    • 字母小于汉字

     上述规则的证明,详见: IF命令之比较运算符证明实例

    注意:特殊字符之间的比较,并不是按照它们的ASCII码的大小进行比较的。 

              示例

    1. ::demo.bat
    2. @echo off
    3. setlocal enableDelayedExpansion
    4. if 1 gtr ^, echo ok
    5. if z gtr 1 echo ok
    6. if z gtr y echo ok
    7. if Z gtr z echo ok
    8. if 王 gtr Z echo ok

             运行

    1. C:\>demo
    2. ok
    3. ok
    4. ok
    5. ok
    6. ok
    7. C:\>

    2、如果 string1 和  string2 是字符串(或 string1 和  string2 其中之一是字符串),并且 string1 和  string2 不能都为数字,则它们的比较规则如下:

    先 比较 string1 和  string2 的第一个字符,如果第一个字符不同,则第一个字符的比较结果就是string1 和  string2 的比较结果;如果第一个字符相同,就继续比较第二个字符,如果第二个字符不同,则第二个字符的比较结果就是string1 和  string2 的比较结果;如果第二个字符相同,就继续比较第三个字符 ... 

            示例

    1. :: 本示例包含汉字,如执行乱码,请使用 Notepad++ 把本文档转化成ANSI编码 【标注一】
    2. ::demo.bat
    3. @echo off
    4. setlocal enableDelayedExpansion
    5. :: a 大于 3
    6. if 2a gtr 23 echo ok
    7. :: C 大于 c
    8. if abC gtr abc echo ok
    9. :: 1 大于 ^,( 转义后为 , )
    10. if 12 gtr ^,2 echo ok
    11. :: A 大于 a
    12. if Abc gtr abc echo ok
    13. :: 王 大于 a
    14. if 王 gtr abC echo ok

     【标注一】   下载Notepad++     

            运行

    1. C:\>demo
    2. ok
    3. ok
    4. ok
    5. ok
    6. ok
    7. C:\>

     3、如果 string1 和  string2 均为数字,这时,它们使用的比较规则和上述第2种情况不同,需要先把它们转为数字,再按照数值进行比较。

            示例

    1. :: 本示例包含汉字,如执行乱码,请使用 Notepad++ 把本文档转化成ANSI编码 【标注一】
    2. ::demo.bat
    3. @echo off
    4. setlocal enableDelayedExpansion
    5. :: 先把字符串 123 和 55 转成数字 123 和 55 ,再按照数值进行比较
    6. if 123 gtr 55 echo ok

            运行 

    1. C:\>demo
    2. ok
    3. C:\>

    写作不易,如果本文对您有用,请 “在下面一圈三连”。

  • 相关阅读:
    朋友圈一键转发(可修改文案),无需多个账号复制粘贴
    SAP UI5 Form 表单 Column Layout 下的 Column 个数分配问题
    Linux环境下离线安装jdk1.8(内置最新的jdk安装包x64)
    SSM整合
    JavaScript篇
    Python环境安装及Selenium引入
    双向数据绑定
    【UE5 Cesium】17-Cesium for Unreal 建立飞行跟踪器(2)
    Vue3的升级及优化总结
    v0.9.6 开源跨平台个人知识管理工具 TidGi-Desktop
  • 原文地址:https://blog.csdn.net/mt15306338066/article/details/127589183