中国DOS联盟论坛

中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --
联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum
游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟
中国DOS联盟论坛
现在时间是 2026-08-02 01:25
48,037 主题排行 / 350,122 发帖 / 今日 2 篇 / 48,250 会员排行
DOS批处理 & 脚本技术(批处理室) » for /f参数问题
可打印版本  1,117 / 3
第1楼 klot 发表于 2006-09-13 03:27
初级用户 发帖 22 积分 168
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英语状态下了)
第2楼 9527 发表于 2006-09-13 04:24
银牌会员 发帖 438 积分 1,185 来自 北京
我真是服了楼主了啦,唉,这可跟CHCP 437 没有关系了,你知道你运行的这条FOR 语句是什么意思吗?我想你不知道,如果知道你就不运行了,当然结果也不会是你现在看到的这个样子,我已经跟楼主说的很清楚了,把FOR的每个参数每个功能都看的透彻了在去试验,当然了,实践是学习的最好途径,不过实践得在你懂得是什么意思的情况下才可以去实践的,要不你会越来越糊涂的..........
第3楼 klot 发表于 2006-09-13 23:05
初级用户 发帖 22 积分 168
谢谢教导。。。呵呵。。。

好在我已经试验成功了
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楼 9527 发表于 2006-09-14 20:29
银牌会员 发帖 438 积分 1,185 来自 北京
看不懂???不会吧,虽说M$的中文帮助是那个了点,不过还好XP系统的帮助要比2000系统的强些,不明白的就在论坛发帖吧.......
[ 联系联盟系统管理团队 - 中国DOS联盟 - 标准版 ]
Sponsored by ifanr Inc | © 2001–2023