Board logo

标题: for /f参数问题 [打印本页]

作者: klot     时间: 2006-9-13 03:27    标题: for /f参数问题

按照论坛上的教程,学到for /f 的时候:

用for /f来显示1.txt里面的所包括的文件列表

klot[D:\hktools\cmdtmp]\>type 1.txt
Volume in drive D has no label.
Volume Serial Number is 9CCC-3BB8

Directory of D:\hktools\cmdtmp

2006-09-12  15:09       <DIR>          .
2006-09-12  15:09       <DIR>          ..
2006-09-12  15:18                    0 1.txt
2006-09-12  15:09                    5 a.txt
2006-09-12  13:48                6,860 mtee.rar
               3 File(s)          6,865 bytes
               2 Dir(s)   2,930,868,224 bytes free

klot[D:\hktools\cmdtmp]\>for /f "skip=7 tokens=4" in (1.txt) do @if exist a% echo a%
in was unexpected at this time.

klot[D:\hktools\cmdtmp]\>


咋出来个“in was unexpected at this time.”??

请指点下。(我已经切换到437英语状态下了)
作者: 9527     时间: 2006-9-13 04:24
我真是服了楼主了啦,唉,这可跟CHCP 437 没有关系了,你知道你运行的这条FOR 语句是什么意思吗?我想你不知道,如果知道你就不运行了,当然结果也不会是你现在看到的这个样子,我已经跟楼主说的很清楚了,把FOR的每个参数每个功能都看的透彻了在去试验,当然了,实践是学习的最好途径,不过实践得在你懂得是什么意思的情况下才可以去实践的,要不你会越来越糊涂的..........
作者: klot     时间: 2006-9-13 23:05
谢谢教导。。。呵呵。。。

好在我已经试验成功了
klot[D:\hktools\cmdtmp]\>for /f "skip=7 tokens=4" %a in (1.txt) do @if exist %a
echo %a
1.txt
a.txt
mtee.rar
就好了,原来我把%a写成a%了。。晕。还有落下一个%

我也大概明白这行的意思,论坛里面给的例子,是错了。它是skip=5,我记得它给出的文本要是跳过5行就剩下磁盘信息了,无法取得文件名。而且它落下了%a,结果搞的我也落了,原来没有%a,前面的"skip=7 tokens=4" 无法传递得到的信息,这么理解对吗?

ps:托您福,我已经把windows自带的for帮助看N遍了。(还是不懂)呵呵。

[ Last edited by klot on 2006-9-13 at 23:14 ]
作者: 9527     时间: 2006-9-14 20:29
看不懂???不会吧,虽说M$的中文帮助是那个了点,不过还好XP系统的帮助要比2000系统的强些,不明白的就在论坛发帖吧.......