|
oilio
高级用户
前进者
积分 641
发帖 303
注册 2007-1-10
状态 离线
|
『楼 主』:
请问for命令中tokens=*和delims=在用法上有什么不同?
用for分析某个文本的内容,为了以防万一文本中用空格分开的行被断掉空格后面的字符串,我看到有的人用"tokens=*"有的人用"delims=" 还有的人两个都用,这两个用法上有什么区别吗?我个人的理解效果应该是一样的吧。
"tokens=*"表示取所有字段,"delims="是指不指定任何分割符,如果文本的第一行有空格断开,用其中一个都可以让分析的字符串不断开吧?是根据各人的爱好两个随便用,还是这两个在用法上有些小技巧?望知道的朋友相告,谢谢您在百忙之中的回帖!
[ Last edited by oilio on 2007-2-8 at 08:51 PM ]
|
我相信总有一天,总会遇到一个人可以相濡以沫、相吻以湿! |
|
2007-2-9 09:19 |
|
|
Climbing
铂金会员
网络独行侠
积分 6962
发帖 2753
注册 2003-4-16 来自 河北保定
状态 离线
|
『第
2 楼』:
自己试一下好了。
|
偶只喜欢回答那些标题和描述都很清晰的帖子!
如想解决问题,请认真学习“这个帖子”和“这个帖子”并努力遵守,如果可能,请告诉更多的人!
|
|
2007-2-9 21:39 |
|
|
lelige
初级用户
积分 21
发帖 9
注册 2005-8-29
状态 离线
|
『第
3 楼』:
delims是指分割符,tokens是指选取分割后得到的字符串片断。
以下面这段代码为例:
FOR /F "eol=; tokens=2,3* delims=," %i in ("a,bc,def,ghij,jklmn") do @echo %i %j %k
其中Delims是“,”,所以"a,bc,def,ghij,klmn")被分隔成了a bc def ghij klmn这5段。
tokens=2,3* 表示取第2个片段、第3个片段以及第3个片段以后的所有片段,亦即:
%i=bc
%j=def
%k=ghij,klmn(此处“*”表示从第4个片段开始就不用再分割了,统统赋给%k)
所以如果你代码中用“tokens=*”的话,就表示不进行任何分割,直接把当前行赋给循环变量。
[ Last edited by lelige on 2007-3-20 at 11:42 PM ]
此帖被 +3 点积分 点击查看详情 评分人:【 dosjj 】 | 分数: +2 | 时间:2008-11-4 09:25 | 评分人:【 dosz 】 | 分数: +1 | 时间:2009-3-7 09:34 |
|
|
|
2007-3-20 23:41 |
|
|
everest79
金牌会员
一叶枝头,万树皆春
积分 2564
发帖 1127
注册 2006-12-25
状态 离线
|
|
2007-3-21 00:05 |
|
|
9527
银牌会员
努力做坏人
积分 1185
发帖 438
注册 2006-8-28 来自 北京
状态 离线
|
『第
5 楼』:
可以简单的给你举了例子吧,例如有文本a.txt
内容如下
hello world
thank you very
you are very good
这三行内容
for /f "tokens=*" %a in (a.txt) do @echo %a
hello world
thank you very
you are very good
他可以变相的把每行前面的空格删除掉
for /f "delims=" %a in (a.txt) do @echo %a
hello world
thank you very
you are very good
还是原文,呵呵,里面的具体参数和应用自己在摸索吧
此帖被 +17 点积分 点击查看详情 评分人:【 oilio 】 | 分数: +3 | 时间:2007-3-21 02:15 | 评分人:【 logictianjin 】 | 分数: +2 | 时间:2007-4-11 03:43 | 评分人:【 Climbing 】 | 分数: +10 | 时间:2008-3-23 00:07 | 评分人:【 dosjj 】 | 分数: +2 | 时间:2008-11-4 09:30 |
|
|
我今后在论坛的目标就是做个超级坏人!!! |
|
2007-3-21 01:25 |
|
|
oilio
高级用户
前进者
积分 641
发帖 303
注册 2007-1-10
状态 离线
|
『第
6 楼』:
谢谢楼上的兄弟,我好像领悟到了一点点精髓。
|
我相信总有一天,总会遇到一个人可以相濡以沫、相吻以湿! |
|
2007-3-21 02:16 |
|
|
kgdetg1127
初级用户
积分 158
发帖 89
注册 2007-4-25
状态 离线
|
|
2007-10-12 23:10 |
|
|
hxwxyz
中级用户
积分 245
发帖 123
注册 2007-6-8
状态 离线
|
|
2007-10-13 10:39 |
|
|
h2thesun
初级用户
积分 34
发帖 14
注册 2007-12-13
状态 离线
|
|
2008-3-3 23:51 |
|
|
dslz666
中级用户
积分 233
发帖 117
注册 2007-11-28
状态 离线
|
『第
10 楼』:
看了3楼的渐渐地明白了,,谢谢
|
|
2008-3-22 17:42 |
|
|
Climbing
铂金会员
网络独行侠
积分 6962
发帖 2753
注册 2003-4-16 来自 河北保定
状态 离线
|
『第
11 楼』:
建议把楼上这个人的ID封掉同时删除其所有发帖。
|
偶只喜欢回答那些标题和描述都很清晰的帖子!
如想解决问题,请认真学习“这个帖子”和“这个帖子”并努力遵守,如果可能,请告诉更多的人!
|
|
2008-3-28 15:50 |
|
|
dosz
中级用户
一看二跟三动手
积分 396
发帖 188
注册 2005-10-23 来自 上海
状态 离线
|
|
2009-3-7 10:44 |
|
|
netbenton
银牌会员
批处理编程迷
积分 1916
发帖 752
注册 2008-12-28 来自 广西
状态 离线
|
『第
13 楼』:
tokens=项为空时只取第一项,
delims=项为空时(默认)以空格及[Tab]为分隔,
|
精简
[你的+我的+他的]=>[大家的] 个人网志 |
|
2009-3-7 11:00 |
|
|
prospy
新手上路
积分 2
发帖 2
注册 2009-4-13
状态 离线
|
|
2009-4-17 23:57 |
|
|
welky
新手上路
积分 3
发帖 3
注册 2009-4-21
状态 离线
|
『第
15 楼』:
一直对for感到陌生,现在有和他亲近了点!
THANK ALL!
|
|
2009-4-24 10:57 |
|