中国DOS联盟

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

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

中国DOS联盟论坛
现在时间是 2026-08-04 15:28
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » 求救~~為何會死循環…… 查看 820 回复 7
楼 主 求救~~為何會死循環…… 发表于 2007-05-15 16:55 ·  中国 广西 梧州 电信
初级用户
积分 52
发帖 21
注册 2007-02-09 11:24
19年会员
UID 79057
性别 男
状态 离线
偶新学批处理
今天看到FOR循环,起了点念头,写了几句东西~
功能是:检查所输入路径是否有TXT文件,有则启动命令行~
写好后试了遍,输入:D:\更新……我在里面新建了个.txt,没问题
于是,想想,再输入:D:\……结果一直打开cmd.exe,机子跨了~
D盘虽然有很多的.txt,但不至于如此地步……
然后尝试换G盘,里面只有1个.txt,结果也跨了~
所以想问问,我这代码有什么问题麽?为何會出現這情况?

代码如下:

@echo off
echo 輸入路径
set /p p=">>"

for /r "%p%" %%i in (*.txt) do start cmd.exe


昨天發錯地方嘞~

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

[ Last edited by Waterlive on 2007-5-17 at 12:22 AM ]
2 发表于 2007-05-15 17:01 ·  中国 上海 电信
初级用户
★★
积分 180
发帖 84
注册 2006-09-07 00:33
19年会员
UID 61995
状态 离线
/r 参数是遍历目录,如果你的目录里有N个txt文件,就会执行N次CMD.EXE
3 发表于 2007-05-15 17:32 ·  中国 浙江 杭州 华数宽带
银牌会员
★★★
积分 2,000
发帖 621
注册 2007-01-01 00:00
19年会员
UID 75212
性别 男
状态 离线
确实是这个问题;
/r的历遍目录不只是历遍你输入的目录;
还包括其中的各层子文件夹;
比如你输入G:\;
历遍的是整个G盘而不仅仅是根目录下
4 发表于 2007-05-15 17:42 ·  中国 广东 广州 天河区 电信
高级用户
★★★
潜水修练批处理
积分 788
发帖 366
注册 2006-12-31 02:43
19年会员
UID 75048
性别 男
状态 离线
for /r只是一个遍历目录的命令,它本身不会判断的
正在潜水修练的批处理小白
5 发表于 2007-05-17 00:19 ·  中国 广西 梧州 电信
初级用户
积分 52
发帖 21
注册 2007-02-09 11:24
19年会员
UID 79057
性别 男
状态 离线
看来是我没说清楚了……我说的G盘只有1个TXT文件是整个盘
而不是说根目录底下只有1个!我G盘是备份盘,没文件夹,就个.gho和为了测试这代码而新建的TXT文件。所以才有疑问……
6 发表于 2007-05-17 12:02 ·  中国 重庆 沙坪坝区 电信
中级用户
★★
金牌会员
积分 315
发帖 152
注册 2007-01-25 23:55
19年会员
UID 77669
性别 男
状态 离线
为什么不
for /r g: %%i in (*.txt) do start cmd.exe
不SET也可以啊`
7 发表于 2007-05-17 19:33 ·  中国 新疆 乌鲁木齐 电信
高级用户
★★★
Autowalk
积分 845
发帖 375
注册 2007-03-03 01:58
19年会员
UID 80606
性别 男
状态 离线
于是,想想,再输入:D:\……结果一直打开cmd.exe,机子跨了~

你输入的是D盘,D盘不止一个TXT文件的吧,这样当然会打开许多CMD来.
你好,脚本专家!
<a target=blank href=tencent://message/?uin=29654761&Site=www.111.com&Menu=yes><img border="0" SRC=http://wpa.qq.com/pa?p=1:29654761:5 alt="点击这里给我发消息"></a>
8 发表于 2007-05-18 14:45 ·  中国 广西 梧州 电信
初级用户
积分 52
发帖 21
注册 2007-02-09 11:24
19年会员
UID 79057
性别 男
状态 离线
回6楼,我原意是想通过输入路径,然后去搜索,并局限于某个地方……

还有回7楼的……我对你没话说,麻烦你仔细看看前面大家的发言以及我的原贴
论坛跳转: