![]() |
中国DOS联盟-- 联合DOS 推动DOS 发展DOS --联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum |
| 游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟 |
|
中国DOS联盟论坛 现在时间是 2026-09-23 16:09 |
共 47,812 主题排行 / 349,917 发帖 / 今日 0 篇 / 48,273 会员排行 |
| DOS批处理 & 脚本技术(批处理室) » [求助]批处理中的比较 |
| 可打印版本 1,521 / 8 |
| 第1楼 punk101 | 发表于 2006-05-05 09:39 |
| 新手上路 发帖 5 积分 18 | |
|
[求助]批处理中的比较 内网全部计算机名命名方式是前缀+顺序数字 ,比如la001 ---la100
获取本机计算机名(用hostname),获得出来后比较计算机名的数字,如果小于100,则什么什么。。。。。。 如果大于100,则。。。。。。。 本人懂得一点,就是用HOSTNAME获得计算机名,然后提取计算机名的数字,再和100比较大小。。。。就知道这么多,具体的就不知道了 请问大家如何实现,谢谢了 |
|
| 第2楼 3742668 | 发表于 2006-05-05 11:24 |
| 荣誉版主 发帖 718 积分 2,013 | |
|
Re punk101:
其实获得计算机名并非一定要用hostname,在XP系统中,你可以用COMPUTERNAME变量来获得计算机名,如果你的计算机没有加入域的话还可以用USERDOMAIN,LOGONSERVER等变量来获得。如果你一定要用hostname的话,最常见的是用for来提取: for /f %i in ('hostname') do set name=%i 提取了计算机名后,再和100比较大小: if %name:~2% LSS 100 (echo 小于100) else (echo 大于等于100) |
|
| 第3楼 chineselgs | 发表于 2006-05-05 19:40 |
| 高级用户 发帖 266 积分 613 来自 河南省 | |
|
看不太懂~ |
|
| 第4楼 punk101 | 发表于 2006-05-05 21:40 |
| 新手上路 发帖 5 积分 18 | |
|
谢谢3742668版主,已经可以实现了
但还有个小问题想问下你。。。比较中LSS是小于,,,大于是什么,谢谢了 |
|
| 第5楼 3742668 | 发表于 2006-05-05 22:25 |
| 荣誉版主 发帖 718 积分 2,013 | |
|
EQU - 等于
NEQ - 不等于 LSS - 小于 LEQ - 小于或等于 GTR - 大于 GEQ - 大于或等于 运行if /?可以得到更多的帮助。 |
|
| 第6楼 punk101 | 发表于 2006-05-05 23:22 |
| 新手上路 发帖 5 积分 18 | |
|
好奇怪的是。。。在实际应用时候,LSS却是大于的。。。。
GRT却是小于。。。。不解。。你可以帮我试下看吗 |
|
| 第7楼 3742668 | 发表于 2006-05-05 23:37 |
| 荣誉版主 发帖 718 积分 2,013 | |
|
是你的代码有毛病吧?你多检查检查。
在用if比较前先用echo把变量显示出来,再用pause中断了检查看看。。。 对了,只能比较整数,不能比较小数和字符串。 我这里测试LSS正常: if 3 LSS 5 (echo 3小于5) else (echo 3大于5) 3小于5 |
|
| 第8楼 punk101 | 发表于 2006-05-06 07:44 |
| 新手上路 发帖 5 积分 18 | |
|
已经可以了,原来显示出来的变量是错的。。。。
我修改后就得了 谢谢3742668版主的热心~~~ 以后要是有什么问题还请多多指教:) |
|
| 第9楼 3742668 | 发表于 2006-05-06 13:11 |
| 荣誉版主 发帖 718 积分 2,013 | |
|
关于在批处理中用if比较数值的大小,建议在用if比较前先对变量进行审核。
在本例中,由于你是用%name:~2%来获得数值的,所以如果编号是0开头的话,那么转换过后的数值应该是以8进制表示,实际变量的值要比估计的要小。因此,最好在比较前先处理一下: set num=1%name:~2% if %num% lss 1100 .......... 虽然上述情况在你的脚本中与100比较的时候可能碰不到,不过在用if进行数值比较前先对变量进行处理应该是个好习惯。 |
|
|
[ 联系联盟系统管理团队 -
中国DOS联盟 -
标准版 ] Sponsored by ifanr Inc | © 2001–2023 |