标题:
[惊奇] IF 竟然能比较十六进制数据的大小
[打印本页]
作者:
victor888
时间:
2008-11-14 14:17
标题:
[惊奇] IF 竟然能比较十六进制数据的大小
不知道是不是我的无知,我试了:
if 40 LSS 3e (echo true) else (echo false)
其中分别用了3d,2f,3f等和3e比较大小,都给出正确的结果了。
作者:
VAF
时间:
2008-11-14 22:37
恐怕你这个 if 不是纯 DOS 的 if 吧.
作者:
pusofalse
时间:
2008-11-15 00:16
只要不加""闭合两个元素。。。
CODE:
[Copy to clipboard]
for /l %%a in (1 1 0x10) do @echo %%a
for /l %%a in (1 1 011) do @echo %%a
作者:
victor888
时间:
2008-11-18 13:51
WINDOWS下的IF
楼上厉害。
作者:
everest79
时间:
2008-11-18 18:57
cmd中八进制十六进制都是被直接识别的
作者:
lpk130
时间:
2008-11-18 21:55
这个并不能表示if支持16进制数......
if m lss n (echo.ok) else (echo.false)
m ASCII:0x6D
n ASCII:0x6E
[
Last edited by lpk130 on 2008-11-18 at 22:06
]
作者:
HAT
时间:
2008-11-18 21:58
标题:
Re 6楼
16进制数字里面有m和n吗?
作者:
lpk130
时间:
2008-11-18 22:00
又查了下,IF是可以支持16进制的..........
if 0x20 lss 32 (echo.ok) else (echo.false)
作者:
lpk130
时间:
2008-11-18 22:01
Quote:
Originally posted by
HAT
at 2008-11-18 21:58:
16进制数字里面有m和n吗?
正因为没有,所以楼主的说法是错误的
那个时候IF并不是按16进制进行比较,而是按ASCII码(我是这么理解的)...
似乎IF的帮助信息里面说明了..
而 /I 开关(如果指定)说明要进行的字符串比较不分大小写。
/I 开关可以用于 IF 的 string1==string2 的形式上。这些
比较都是通用的;原因是,如果 string1 和 string2 都是
由数字组成的,字符串会被转换成数字,进行数字比较。
[
Last edited by lpk130 on 2008-11-18 at 22:04
]
作者:
HAT
时间:
2008-11-18 22:20
标题:
Re 9楼
你说的很对
楼主说的也很对
不过你们说的不是同一个问题
呵呵
欢迎光临 中国DOS联盟论坛 (http://cndos.fam.cx/forum/)
Powered by Discuz! 2.5