中国DOS联盟

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

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

中国DOS联盟论坛
现在时间是 2026-06-27 01:49
中国DOS联盟论坛 » DOS疑难解答 & 问题讨论 (解答室) » [求助]高手请帮忙!批处理问题? 查看 779 回复 3
楼 主 [求助]高手请帮忙!批处理问题? 发表于 2003-12-31 00:00 ·  中国 联通
初级用户
积分 116
发帖 3
注册 2003-11-29 00:00
22年会员
UID 13551
性别 男
状态 离线
小弟最近看了批处理的文章,有许多不懂之处,恳请高手指点。
FOR /F %variable IN (file-set) DO command
FOR /F %variable IN (string) DO command
FOR /F %variable IN ('command' DO command
eol=c - 指一个行注释字符的结尾(就一个)
skip=n - 指在文件开始时忽略的行数。
delims=xxx - 指分隔符集。这个替换了空格和跳格键的
默认分隔符集。
tokens=x,y,m-n - 指每行的哪一个符号被传递到每个迭代
的 for 本身。这会导致额外变量名称的分配。m-n
格式为一个范围。通过 nth 符号指定 mth。如果
符号字符串中的最后一个字符星号,
那么额外的变量将在最后一个符号解析之后
分配并接受行的保留文本。
usebackq - 指定新语法已在下类情况中使用:
在作为命令执行一个后引号的字符串并且一个单
引号字符为文字字符串命令并允许在 filenameset
中使用双引号扩起文件名称。

对于FOR /F 有许多不懂之处,希望高手多举些实例解释一下以上参数呀 。



2 发表于 2004-01-06 00:00 ·  中国 江苏 连云港 电信
初级用户
积分 116
发帖 3
注册 2003-11-29 00:00
22年会员
UID 13551
性别 男
状态 离线
为什么没有人回我的贴呀 !
3 发表于 2004-01-07 00:00 ·  中国 天津 教育网
高级用户
★★
积分 924
发帖 243
注册 2003-07-09 00:00
22年会员
UID 6612
性别 男
状态 离线
这一段实在是看不懂啊
4 发表于 2004-01-14 00:00 ·  日本
初级用户
积分 108
发帖 2
注册 2004-01-14 00:00
22年会员
UID 15496
性别 男
状态 离线
这个是根据命令行下面“for /?”的提示翻译的,最好看原文。

我只能说说大致意思:

eol : 指定以什么为一行的结束标志

skip=n : for循环从指定文件的第n+1行开始,即跳过前n个非空白行

delims=xxx : 'xxx'中的每一个字符,将被看成token(就是一段字串)的分隔符,

tokens=x,y,m-n : 指定将传递给%variable变量的token;如果tokens=之后多于一个参数,将自动定义%(variable+1),等等;注如果variable是i,则自动定义的下一个是j,k,。。。

usebackq: 使用用户定义的语法,主要是引号的用法不一样。意思如下:
在不使用用户定义的语法时,for的语法如下(注意各种引号的用法)
FOR /F %variable IN (file-set) DO command
FOR /F %variable IN ("string" DO command
FOR /F %variable IN ('command' DO command

如果使用用户定义的语法时,for的语法如下(注意各种引号的用法)
or, if usebackq option present:

FOR /F %variable IN (file-set) DO command
FOR /F %variable IN ('string' DO command
FOR /F %variable IN (`command`) DO command
论坛跳转: