标题: 求救~~為何會死循環……
[打印本页]
作者: Waterlive
时间: 2007-5-15 16:55
标题: 求救~~為何會死循環……
偶新学批处理
今天看到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 ]
作者: ttyp
时间: 2007-5-15 17:01
/r 参数是遍历目录,如果你的目录里有N个txt文件,就会执行N次CMD.EXE
作者: bjsh
时间: 2007-5-15 17:32
确实是这个问题;
/r的历遍目录不只是历遍你输入的目录;
还包括其中的各层子文件夹;
比如你输入G:\;
历遍的是整个G盘而不仅仅是根目录下
作者: dikex
时间: 2007-5-15 17:42
for /r只是一个遍历目录的命令,它本身不会判断的
作者: Waterlive
时间: 2007-5-17 00:19
看来是我没说清楚了……我说的
G盘只有1个TXT文件是整个盘。
而不是说根目录底下只有1个!我G盘是备份盘,没文件夹,就个.gho和为了测试这代码而新建的TXT文件。所以才有疑问……
作者: fengzi
时间: 2007-5-17 12:02
为什么不
for /r g: %%i in (*.txt) do start cmd.exe
不SET也可以啊`
作者: zhoushijay
时间: 2007-5-17 19:33
于是,想想,再输入:D:\……结果一直打开cmd.exe,机子跨了~
你输入的是D盘,D盘不止一个TXT文件的吧,这样当然会打开许多CMD来.
作者: Waterlive
时间: 2007-5-18 14:45
回6楼,我原意是想通过输入路径,然后去搜索,并局限于某个地方……
还有回7楼的……我对你没话说,麻烦你仔细看看前面大家的发言以及我的原贴