![]() |
中国DOS联盟-- 联合DOS 推动DOS 发展DOS --联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum |
| 游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟 |
|
中国DOS联盟论坛 现在时间是 2026-08-02 21:39 |
共 48,038 主题排行 / 350,123 发帖 / 今日 1 篇 / 48,251 会员排行 |
| DOS批处理 & 脚本技术(批处理室) » 关于bat调用自身的运行次数和dos下用for计算产生的问题 |
| 可打印版本 2,439 / 19 |
| 第1楼 dy2003310 | 发表于 2006-12-25 05:39 |
| 初级用户 发帖 68 积分 180 来自 China | |
|
关于bat调用自身的运行次数和dos下用for计算产生的问题 各位兄弟姐妹,在《批处理最完整人性化教程(转&精)》这一篇贴子里说到1、
————给出一个很有意思的脚本,有兴趣的朋友可以实验一下。例十(默认脚本文件名为a.bat): call a.bat 一定要在DOS窗口下执行,否则只会看到一个窗口一闪而过,看不到最后结果。等执行完后,当脚本被执行了1260次,别忘了想一下到底是为什么!———— 其中那个1260如何去证明呀??? 到底是什么道理呀??? 2、这篇贴子还说到———— ————例二十一: @echo off dir a.ttt /a & dir a.txt || exit 例二十二: @echo off dir a.ttt /a && dir a.txt || exit 这两个例子和数学悖论有关系吗??? 数学悖论小弟只是知道有那么一回事,觉得挺有趣的!!! [ Last edited by namejm on 2006-12-25 at 10:39 AM ] |
|
| 第2楼 win2ye | 发表于 2006-12-25 05:45 |
| 初级用户 发帖 22 积分 58 | |
|
问题1、只要你运行,不一会批处理就会被终止,就会出现提示:
大意应该是批处理循环次数超出限制 不知道翻译得对不对 |
|
| 第3楼 redtek | 发表于 2006-12-25 05:54 |
| 金牌会员 发帖 1,147 积分 2,902 | |
|
查看运行了多少次的过程的方法(虽然溢出时系统已经告诉了~:)
先进入cmd,再运行 a.bat。 a.bat 内容如下: 另:那篇贴子的地址附上,方便其他网友查阅~:) 批处理最完整人性化教程(转&精) http://www.cn-dos.net/forum/viewthread.php?tid=18482&fpage=1 |
|
| 第4楼 dy2003310 | 发表于 2006-12-25 05:54 |
| 初级用户 发帖 68 积分 180 来自 China | |
|
谢楼上兄弟了!
那即是说dos本身对循环次数有一个限制了?? 这是还有一篇贴子说到在dos下面求一系列数的和,如1到100的。 如果是1到100000或者其它,会不会出现其它问题???因为如果批处理循环次数有一个限制的话!!! 麻烦兄弟再帮我一下 |
|
| 第5楼 win2ye | 发表于 2006-12-25 05:59 |
| 初级用户 发帖 22 积分 58 | |
Originally posted by dy2003310 at 2006-12-25 05:54: 我也没试过,楼主不如自己先试下,实践出真知 上面的循环是引用死循环,FOR语句构成的循环和它不同,应该不存在这个限制 |
|
| 第6楼 dy2003310 | 发表于 2006-12-25 06:03 |
| 初级用户 发帖 68 积分 180 来自 China | |
|
呵呵,谢谢redtek兄
刚用你贴出的方法试验了 看到最后的数字是1241 那个1260到底怎么回事 |
|
| 第7楼 dy2003310 | 发表于 2006-12-25 06:10 |
| 初级用户 发帖 68 积分 180 来自 China | |
|
回win2ye兄,
小弟昨晚就是用for试了, 我那台机子的cpu使用率到了100%,死机了 后来缩了范围却得出一个负数 机房快关门了,小弟不能及时回各位兄弟贴子了 请见谅 |
|
| 第8楼 ccwan | 发表于 2006-12-25 06:53 |
| 金牌会员 发帖 1,160 积分 2,725 来自 河北廊坊 | |
Originally posted by dy2003310 at 2006-12-25 06:03: 首先,我在XP下测试最后的数字是1241 其次,我在2000下测试最后的数字是1268 没有2003系统,感觉是不同系统略有区别吧。 |
|
| 第9楼 win2ye | 发表于 2006-12-25 06:57 |
| 初级用户 发帖 22 积分 58 | |
|
我是XPSP2的系统,限制次数是1240
|
|
| 第10楼 dy2003310 | 发表于 2006-12-25 08:23 |
| 初级用户 发帖 68 积分 180 来自 China | |
|
刚上来
呵呵,先谢谢各位热心的兄弟 小弟刚才回去再试了一下,也是1241(xp系统的) 真是非常感激ccwan兄帮我在2000下试验那个结果!!! 再回win2ye兄,小弟刚才回去又试了一次那个for求值问题, 做了一些代码,请win2ye兄和其它有兴趣的兄弟都来指正一下。 |
|
| 第11楼 dy2003310 | 发表于 2006-12-25 08:27 |
| 初级用户 发帖 68 积分 180 来自 China | |
|
噢,怎么上传附件??
再试下, 新人,见谅 在这里向版兄说声sorry,是关于那标题的事啦 |
|
| 第12楼 dy2003310 | 发表于 2006-12-25 08:34 |
| 初级用户 发帖 68 积分 180 来自 China | |
|
http://zhenlove.com.cn/cndos/fileup/files/dos下用for计算的问题.zip
看下行不行 |
|
| 第13楼 dy2003310 | 发表于 2006-12-25 08:52 |
| 初级用户 发帖 68 积分 180 来自 China | |
|
各位兄弟
http://zhenlove.com.cn/cndos/fileup/files/dos下用for计算的问题.zip 这个地址是我上传的关于在dos下计算的问题 例如1到100 1到10000000等等 计算的结果中居然有负数 是不是dos下的数值类型造成的问题呢??? 例如它也分整型,单精度型什么的 |
|
| 第14楼 lxmxn | 发表于 2006-12-25 09:38 |
| 版主 发帖 4,938 积分 11,386 | |
|
CMD下面只能处理-2147483648——2147483647之间的数,过大过小都会溢出。 |
|
| 第15楼 dy2003310 | 发表于 2006-12-25 09:48 |
| 初级用户 发帖 68 积分 180 来自 China | |
|
呵呵,终于有回音了
麻烦lxmxn兄帮我试验一下下面这些代码 @ECHO OFF setlocal EnableDelayedExpansion time /t for /l %%i in (1,2,100000) do set /a num=!num!+%%i echo 计算结果是:!num! time /t pause 在我的机子上它的运行结果如下 18:26 计算结果是:-1794967296 18:26 请按任意键继续. . . |
|
| 1 2 下一页 |
|
[ 联系联盟系统管理团队 -
中国DOS联盟 -
标准版 ] Sponsored by ifanr Inc | © 2001–2023 |