![]() |
中国DOS联盟-- 联合DOS 推动DOS 发展DOS --联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum |
| 游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟 |
|
中国DOS联盟论坛 现在时间是 2026-08-11 17:18 |
共 47,811 主题排行 / 349,897 发帖 / 今日 0 篇 / 48,256 会员排行 |
| DOS批处理 & 脚本技术(批处理室) » [求助]在for语句里set,有bug?(麻烦版主,高手进来下) |
| 可打印版本 749 / 10 |
| 第1楼 fantasybb | 发表于 2009-04-16 11:47 |
| 新手上路 发帖 6 积分 6 | |
|
[求助]在for语句里set,有bug?(麻烦版主,高手进来下) 这个问题是有关处理ini文件的,搜索了以前的帖子,觉得我这个问题不需要那么复杂。这个问题是:
现有test.ini文件内容如下: 下面的这个P是为了显示除块以外的内容: 很显然,结果出乎意外。结果只显示到,如下 但错误在哪我死活想不出来。去掉@echo off后分析,在test.ini中运行到以前都是正确的,在这行,!t!的值变成了"1",也是对的。然后一直运行到这行,!t!变成了"0",并且这句也显示了出来。但下面的就都显示不出来了!看!t!的值也都是"0"啊!为什么此时 这句就不执行了呢? 期待高手帮我分析一下! [ Last edited by fantasybb on 2009-4-16 at 12:05 ] |
|
| 第2楼 s11ss | 发表于 2009-04-16 12:34 |
| 银牌会员 发帖 566 积分 2,098 | |
|
可能是bug,改用defined判断可以——空格惹的祸…… [ Last edited by s11ss on 2009-4-16 at 13:06 ] |
|
| 第3楼 26933062 | 发表于 2009-04-16 12:37 |
| 银牌会员 发帖 879 积分 2,268 | |
|
bug 应该不太可能吧。。
分析代码太累了,先看看你是想要这个效果吗? : |
|
| 第4楼 26933062 | 发表于 2009-04-16 12:46 |
| 银牌会员 发帖 879 积分 2,268 | |
|
:
[ Last edited by 26933062 on 2009-4-16 at 12:50 ] |
|
| 第5楼 fantasybb | 发表于 2009-04-16 12:50 |
| 新手上路 发帖 6 积分 6 | |
|
恩,s11ss和26933062的都满足要求。谢谢你俩!
不过,我的那个代码确实是个bug吧?到d=4或e=5这两行的时候,t明明是等于"0"的,竟然不做if /i !t!=="0" echo %%i这个判断? |
|
| 第6楼 fantasybb | 发表于 2009-04-16 12:53 |
| 新手上路 发帖 6 积分 6 | |
Originally posted by 26933062 at 2009-4-16 12:46: 哈哈,谢谢!我上上礼拜刚学的P 所以代码不规范,呵呵。之所以用t=“0”就是因为有时候若用t=0有时候后面会“莫名其妙”地多个空格。现在明白了,哈哈![]() 有劳两位了! |
|
| 第7楼 s11ss | 发表于 2009-04-16 13:09 |
| 银牌会员 发帖 566 积分 2,098 | |
Originally posted by fantasybb at 2009-4-16 12:53 PM: 防止变量不小心包含值附近的空格,应当写作: set "t=0" |
|
| 第8楼 Climbing | 发表于 2009-04-16 13:30 |
| 铂金会员 发帖 2,753 积分 6,962 来自 河北保定 | |
|
Re fantasybb: 分析了一下你顶楼的代码,发现了bug所在。
下面是排除bug后的代码,只有一个字节的差别,看你能不能找到: 事实上,你的代码还有很多其它的bug(例如,将中的任何一个字母大写),暂时我修正成如下情况: |
|
| 第9楼 Climbing | 发表于 2009-04-16 13:36 |
| 铂金会员 发帖 2,753 积分 6,962 来自 河北保定 | |
|
晕,等我发出帖子后,发现4楼的已经找到bug所在。
另外,s11ss兄在7楼推荐的设置变量(避免多余空格)方法确实更经典。 |
|
| 第10楼 yishanju | 发表于 2009-04-16 14:29 |
| 银牌会员 发帖 1,357 积分 1,488 | |
Originally posted by s11ss at 2009-4-16 13:09: 是不是还可以这样写(set a=xxxx) |
|
| 第11楼 HAT | 发表于 2009-04-16 15:34 |
| 版主 发帖 5,017 积分 9,023 | |
|
Re 10楼 括号还是少用为好吧
|
|
|
[ 联系联盟系统管理团队 -
中国DOS联盟 -
标准版 ] Sponsored by ifanr Inc | © 2001–2023 |