== 和 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
需要更长的几个时钟周期,因为它首先必须尝试将两个项目转换为整数。
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
需要更长的几个时钟周期,因为它首先必须尝试将两个项目转换为整数。