中国DOS联盟论坛

中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --
联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum
游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟
中国DOS联盟论坛
现在时间是 2026-08-04 16:30
48,038 主题排行 / 350,123 发帖 / 今日 0 篇 / 48,251 会员排行
DOS批处理 & 脚本技术(批处理室) » 求救~~為何會死循環……
可打印版本  821 / 7
第1楼 Waterlive 发表于 2007-05-15 16:55
初级用户 发帖 21 积分 52
求救~~為何會死循環……
偶新学批处理
今天看到FOR循环,起了点念头,写了几句东西~
功能是:检查所输入路径是否有TXT文件,有则启动命令行~
写好后试了遍,输入:D:\更新……我在里面新建了个.txt,没问题
于是,想想,再输入:D:\……结果一直打开cmd.exe,机子跨了~
D盘虽然有很多的.txt,但不至于如此地步……
然后尝试换G盘,里面只有1个.txt,结果也跨了~
所以想问问,我这代码有什么问题麽?为何會出現這情况?

代码如下:


昨天發錯地方嘞~

注:上面所说的G盘为备份盘,只有.gho和1个TXT共2个文件,无文件夹

[ Last edited by Waterlive on 2007-5-17 at 12:22 AM ]
第2楼 ttyp 发表于 2007-05-15 17:01
初级用户 发帖 84 积分 180
/r 参数是遍历目录,如果你的目录里有N个txt文件,就会执行N次CMD.EXE
第3楼 bjsh 发表于 2007-05-15 17:32
银牌会员 发帖 621 积分 2,000
确实是这个问题;
/r的历遍目录不只是历遍你输入的目录;
还包括其中的各层子文件夹;
比如你输入G:\;
历遍的是整个G盘而不仅仅是根目录下
第4楼 dikex 发表于 2007-05-15 17:42
高级用户 发帖 366 积分 788
for /r只是一个遍历目录的命令,它本身不会判断的
第5楼 Waterlive 发表于 2007-05-17 00:19
初级用户 发帖 21 积分 52
看来是我没说清楚了……我说的G盘只有1个TXT文件是整个盘
而不是说根目录底下只有1个!我G盘是备份盘,没文件夹,就个.gho和为了测试这代码而新建的TXT文件。所以才有疑问……
第6楼 fengzi 发表于 2007-05-17 12:02
中级用户 发帖 152 积分 315
为什么不
for /r g: %%i in (*.txt) do start cmd.exe
不SET也可以啊`
第7楼 zhoushijay 发表于 2007-05-17 19:33
高级用户 发帖 375 积分 845
于是,想想,再输入:D:\……结果一直打开cmd.exe,机子跨了~

你输入的是D盘,D盘不止一个TXT文件的吧,这样当然会打开许多CMD来.
第8楼 Waterlive 发表于 2007-05-18 14:45
初级用户 发帖 21 积分 52
回6楼,我原意是想通过输入路径,然后去搜索,并局限于某个地方……

还有回7楼的……我对你没话说,麻烦你仔细看看前面大家的发言以及我的原贴
[ 联系联盟系统管理团队 - 中国DOS联盟 - 标准版 ]
Sponsored by ifanr Inc | © 2001–2023