== 和 EQU 运算符之间的区别?

Difference between == and EQU operator?

Batch 中的 ==EQU 运算符有什么区别?

下面只是一个示例片段:

if !one! EQU - (
    if !one!==!two! (
        if !two!==!three! (
            goto endgame
        )
    )
)

如果EQU发现被比较的两个东西是有效的整数(八进制、十进制或十六进制),那么将进行整数比较。

例如if 0x64 EQU 100 (echo yes) else (echo no) returns yes因为十六进制的64等于十进制的100

如果被比较的两个事物中的任何一个都不可能是有效的整数(例如,数字 09,它将是八进制的,但 9 不是有效的八进制数字) , 然后进行字符串比较。

== 只运行字符串比较,所以 if 0x64==100 (echo yes) else (echo no) returns no 因为两个字符串不同。

就简单的字符串比较而言,两个运算符的作用基本相同,但 EQU 需要更长的几个时钟周期,因为它首先必须尝试将两个项目转换为整数。