标题: [其他] bat中if语句使用字母还是符号做比较符? [打印本页]
作者: LTSC1809 时间: 2023-5-14 08:00 标题: bat中if语句使用字母还是符号做比较符?
我用if一直是用equ,gtr之类的字母来代表等于,大于等逻辑,但是我偶然看到论坛里有人发的代码是用双等于号"=="来比较?这样也行吗?哪种更正规一点?其他逻辑呢?大于也是两个大于号连着">>",小于也是两个小于号连着"<<"吗,这不就成了重定向符号了吗
作者: jyswjjgdwtdtj 时间: 2023-5-14 08:44
本帖最后由 jyswjjgdwtdtj 于 2023-5-14 08:52 编辑
bat不太了解 但是在c一系的语言里 ==,<,>是比较符号(返回布尔值) =是赋值符号(返回修改过后的左值)
所以说<< >>作为比较运算符肯定是错的
作者: HOPE2021 时间: 2023-5-14 08:49
回复 1# LTSC1809
If 语句的标准形式如下:- IF [NOT] ERRORLEVEL number command
- IF [NOT] string1==string2 command
- IF [NOT] EXIST filename command
复制代码
启用了扩展以后如下:- IF [/I] string1 compare-op string2 command
- IF CMDEXTVERSION number command
- IF DEFINED variable command
-
- 其中, compare-op 可以是:
-
- EQU - 等于
- NEQ - 不等于
- LSS - 小于
- LEQ - 小于或等于
- GTR - 大于
- GEQ - 大于或等于
-
- 而 /I 开关(如果指定)说明要进行的字符串比较不分大小写。
- /I 开关可以用于 IF 的 string1==string2 的形式上。这些
- 比较都是通用的;原因是,如果 string1 和 string2 都是
- 由数字组成的,字符串会被转换成数字,进行数字比较。
复制代码
所以If语句的比较符只有字母比较符和"=="
作者: ashnoer 时间: 2023-5-14 08:54
我个人感觉用字母表示比较好
相较于其他语言,判断都是用 == != <= >= 进行判断
而 Bat 里 if 好像就一个 == 而其他的判断都是用字母表示
EQU - 等于
NEQ - 不等于
LSS - 小于
LEQ - 小于或等于
GTR - 大于
GEQ - 大于或等于
作者: hlzj88 时间: 2023-5-14 09:40
个人理解: 大于 小于 适用于数字比较,按同一类型 equ neq 也是用于数字比较的。==更偏向字符串,字母、汉字等的的比较。
作者: Batcher 时间: 2023-5-14 10:34
回复 1# LTSC1809
if的帮助文档里面没有">>"和"<<",还是得以帮助文档为基础。
作者: LTSC1809 时间: 2023-5-14 22:04
回复 6# Batcher 话是这样说,但是我在cmd中输入if /?给出的帮助也没有双等于号,只有equ,gtr这些字母,那为什么双等于号能用呢
作者: LTSC1809 时间: 2023-5-14 22:05
回复 5# hlzj88 但是我用equ比较字符串也能用,没有报错
作者: Batcher 时间: 2023-5-14 22:43
回复 7# LTSC1809
再仔细看看帮助文档有没有==吧,实在看不到就算了,不必太纠结。
作者: czjt1234 时间: 2023-5-15 09:37
复制代码
是有==的
3楼已经说得很清楚了
欢迎光临 批处理之家 (http://bbs.bathome.net/) |
Powered by Discuz! 7.2 |