[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

[其他] bat中if语句使用字母还是符号做比较符?

我用if一直是用equ,gtr之类的字母来代表等于,大于等逻辑,但是我偶然看到论坛里有人发的代码是用双等于号"=="来比较?这样也行吗?哪种更正规一点?其他逻辑呢?大于也是两个大于号连着">>",小于也是两个小于号连着"<<"吗,这不就成了重定向符号了吗

本帖最后由 jyswjjgdwtdtj 于 2023-5-14 08:52 编辑

bat不太了解 但是在c一系的语言里 ==,<,>是比较符号(返回布尔值) =是赋值符号(返回修改过后的左值)
所以说<< >>作为比较运算符肯定是错的
1

评分人数

你好

TOP

回复 1# LTSC1809
If 语句的标准形式如下:
  1. IF [NOT] ERRORLEVEL number command
  2. IF [NOT] string1==string2 command
  3. IF [NOT] EXIST filename command
复制代码
启用了扩展以后如下:
  1.     IF [/I] string1 compare-op string2 command
  2.     IF CMDEXTVERSION number command
  3.     IF DEFINED variable command
  4. 其中, compare-op 可以是:
  5.     EQU - 等于
  6.     NEQ - 不等于
  7.     LSS - 小于
  8.     LEQ - 小于或等于
  9.     GTR - 大于
  10.     GEQ - 大于或等于
  11. 而 /I 开关(如果指定)说明要进行的字符串比较不分大小写。
  12. /I 开关可以用于 IF 的 string1==string2 的形式上。这些
  13. 比较都是通用的;原因是,如果 string1 和 string2 都是
  14. 由数字组成的,字符串会被转换成数字,进行数字比较。
复制代码
所以If语句的比较符只有字母比较符和"=="
Why join the navy, if you can be a pirate? - Steve Jobs

TOP

我个人感觉用字母表示比较好

相较于其他语言,判断都是用 ==    !=    <=    >=  进行判断

而 Bat 里 if 好像就一个 ==  而其他的判断都是用字母表示

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

TOP

个人理解: 大于 小于 适用于数字比较,按同一类型 equ neq 也是用于数字比较的。==更偏向字符串,字母、汉字等的的比较。
目的,学习批处理

TOP

回复 1# LTSC1809


if的帮助文档里面没有">>"和"<<",还是得以帮助文档为基础。
我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

回复 6# Batcher 话是这样说,但是我在cmd中输入if /?给出的帮助也没有双等于号,只有equ,gtr这些字母,那为什么双等于号能用呢

TOP

回复 5# hlzj88 但是我用equ比较字符串也能用,没有报错

TOP

回复 7# LTSC1809


    再仔细看看帮助文档有没有==吧,实在看不到就算了,不必太纠结。
我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

  1. if /?
复制代码
是有==的

3楼已经说得很清楚了

QQ 20147578

TOP

返回列表