中国DOS联盟论坛

中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --

联盟域名:www.cn-dos.net  论坛域名:www.cn-dos.net/forum
DOS,代表着自由开放与发展,我们努力起来,学习FreeDOS和Linux的自由开放与GNU精神,共同创造和发展美好的自由与GNU GPL世界吧!

游客:  注册 | 登录 | 命令行 | 会员 | 搜索 | 上传 | 帮助 »
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » [惊奇] IF 竟然能比较十六进制数据的大小
作者:
标题: [惊奇] IF 竟然能比较十六进制数据的大小 上一主题 | 下一主题
victor888
初级用户





积分 50
发帖 40
注册 2008-1-14
状态 离线
『楼 主』:  [惊奇] IF 竟然能比较十六进制数据的大小

不知道是不是我的无知,我试了:

if 40 LSS 3e (echo true) else (echo false)

其中分别用了3d,2f,3f等和3e比较大小,都给出正确的结果了。

2008-11-14 14:17
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
VAF
中级用户





积分 242
发帖 134
注册 2006-12-11
状态 离线
『第 2 楼』:  

恐怕你这个 if 不是纯 DOS 的 if 吧.

2008-11-14 22:37
查看资料  发短消息 网志   编辑帖子  回复  引用回复
pusofalse
银牌会员




积分 1604
发帖 646
注册 2008-4-13
状态 离线
『第 3 楼』:  

只要不加""闭合两个元素。。。
for /l %%a in (1 1 0x10) do @echo %%a
for /l %%a in (1 1 011) do @echo %%a




心绪平和,眼藏静谧,无比安稳的火... Purification of soul...Just a false...^_^
2008-11-15 00:16
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
victor888
初级用户





积分 50
发帖 40
注册 2008-1-14
状态 离线
『第 4 楼』:  

WINDOWS下的IF
楼上厉害。

2008-11-18 13:51
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
everest79
金牌会员

一叶枝头,万树皆春



积分 2564
发帖 1127
注册 2006-12-25
状态 离线
『第 5 楼』:  

cmd中八进制十六进制都是被直接识别的



49206C6F766520796F752067757973 54656C3A3133383238343036373837
2008-11-18 18:57
查看资料  发短消息 网志   编辑帖子  回复  引用回复
lpk130
初级用户





积分 80
发帖 30
注册 2007-4-19
状态 离线
『第 6 楼』:  

这个并不能表示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 ]

2008-11-18 21:55
查看资料  发短消息 网志   编辑帖子  回复  引用回复
HAT
版主





积分 9023
发帖 5017
注册 2007-5-31
状态 离线
『第 7 楼』:  Re 6楼

16进制数字里面有m和n吗?



2008-11-18 21:58
查看资料  发短消息 网志   编辑帖子  回复  引用回复
lpk130
初级用户





积分 80
发帖 30
注册 2007-4-19
状态 离线
『第 8 楼』:  

又查了下,IF是可以支持16进制的..........
if 0x20 lss 32 (echo.ok) else (echo.false)

2008-11-18 22:00
查看资料  发短消息 网志   编辑帖子  回复  引用回复
lpk130
初级用户





积分 80
发帖 30
注册 2007-4-19
状态 离线
『第 9 楼』:  



  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 ]

2008-11-18 22:01
查看资料  发短消息 网志   编辑帖子  回复  引用回复
HAT
版主





积分 9023
发帖 5017
注册 2007-5-31
状态 离线
『第 10 楼』:  Re 9楼

你说的很对
楼主说的也很对
不过你们说的不是同一个问题
呵呵



2008-11-18 22:20
查看资料  发短消息 网志   编辑帖子  回复  引用回复

请注意:您目前尚未注册或登录,请您注册登录以使用论坛的各项功能,例如发表和回复帖子等。


可打印版本 | 推荐给朋友 | 订阅主题 | 收藏主题



论坛跳转: