中国DOS联盟

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

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

中国DOS联盟论坛
现在时间是 2026-08-02 02:24
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » for /f参数问题 查看 1,119 回复 3
楼 主 for /f参数问题 发表于 2006-09-13 03:27 ·  中国 黑龙江 哈尔滨 中移铁通
初级用户
积分 168
发帖 22
注册 2004-11-18 00:00
21年会员
UID 33761
性别 男
状态 离线
按照论坛上的教程,学到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英语状态下了)
2 发表于 2006-09-13 04:24 ·  中国 北京 联通
银牌会员
★★★
努力做坏人
积分 1,185
发帖 438
注册 2006-08-28 12:00
19年会员
UID 61449
来自 北京
状态 离线
我真是服了楼主了啦,唉,这可跟CHCP 437 没有关系了,你知道你运行的这条FOR 语句是什么意思吗?我想你不知道,如果知道你就不运行了,当然结果也不会是你现在看到的这个样子,我已经跟楼主说的很清楚了,把FOR的每个参数每个功能都看的透彻了在去试验,当然了,实践是学习的最好途径,不过实践得在你懂得是什么意思的情况下才可以去实践的,要不你会越来越糊涂的..........
我今后在论坛的目标就是做个超级坏人!!!
3 发表于 2006-09-13 23:05 ·  中国 黑龙江 哈尔滨 中移铁通
初级用户
积分 168
发帖 22
注册 2004-11-18 00:00
21年会员
UID 33761
性别 男
状态 离线
谢谢教导。。。呵呵。。。

好在我已经试验成功了
klot\>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 ]
4 发表于 2006-09-14 20:29 ·  中国 北京 联通
银牌会员
★★★
努力做坏人
积分 1,185
发帖 438
注册 2006-08-28 12:00
19年会员
UID 61449
来自 北京
状态 离线
看不懂???不会吧,虽说M$的中文帮助是那个了点,不过还好XP系统的帮助要比2000系统的强些,不明白的就在论坛发帖吧.......
我今后在论坛的目标就是做个超级坏人!!!
论坛跳转: