标题: [其他] 比较大小的批处理为什么两次执行结果不同? [打印本页]
作者: hfgjgx 时间: 2023-8-4 22:33 标题: 比较大小的批处理为什么两次执行结果不同?
本帖最后由 hfgjgx 于 2023-8-4 23:00 编辑
码1- set a=5
- if %a% lss 4 (echo ok
- ) else (
- echo error
- )
- pause
复制代码
结果:error
码2- set a=5
- if "%a%" lss 4 (echo ok
- ) else (
- echo error
- )
- pause
复制代码
结果:ok
作者: Batcher 时间: 2023-8-4 22:52
回复 1# hfgjgx
不加双引号,是数值比较。- @echo off
- set a=5
- if %a% lss 4 (
- echo ok
- ) else (
- echo error
- )
- pause
复制代码
加上双引号(两边都加),是字符串比较。- @echo off
- set a=5
- if "%a%" lss "4" (
- echo ok
- ) else (
- echo error
- )
- pause
复制代码
作者: hfgjgx 时间: 2023-8-4 23:18
回复 2# Batcher
我搞错了,码1和码2结果搞反了。帖子能改不?
求大佬讲详细一点,我才学没多久
我不理解这两个5为什么不一样,字符串被判定为“比数值小”
作者: Batcher 时间: 2023-8-5 17:06
回复 3# hfgjgx
参考:批处理if命令字符串比较和ASCII的关系
http://bbs.bathome.net/thread-6851-1-1.html
http://bbs.bathome.net/thread-12314-1-1.html
http://bbs.bathome.net/thread-12329-1-1.html
如果看完之后还是不太理解,先记住一条:
比较的双方,要么都加双引号,要么都不加双引号。
作者: hfgjgx 时间: 2023-8-8 18:54
回复 4# Batcher
太感谢了谢谢
欢迎光临 批处理之家 (http://www.bathome.net/) |
Powered by Discuz! 7.2 |