![]() |
中国DOS联盟-- 联合DOS 推动DOS 发展DOS --联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum |
| 游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟 |
|
中国DOS联盟论坛 现在时间是 2026-08-11 18:03 |
共 47,811 主题排行 / 349,897 发帖 / 今日 0 篇 / 48,256 会员排行 |
| DOS批处理 & 脚本技术(批处理室) » 请问for命令中tokens=*和delims=在用法上有什么不同? |
| 可打印版本 2,158 / 14 |
| 第1楼 oilio | 发表于 2007-02-09 09:19 |
| 高级用户 发帖 303 积分 641 | |
|
请问for命令中tokens=*和delims=在用法上有什么不同? 用for分析某个文本的内容,为了以防万一文本中用空格分开的行被断掉空格后面的字符串,我看到有的人用"tokens=*"有的人用"delims=" 还有的人两个都用,这两个用法上有什么区别吗?我个人的理解效果应该是一样的吧。
"tokens=*"表示取所有字段,"delims="是指不指定任何分割符,如果文本的第一行有空格断开,用其中一个都可以让分析的字符串不断开吧?是根据各人的爱好两个随便用,还是这两个在用法上有些小技巧?望知道的朋友相告,谢谢您在百忙之中的回帖! ![]() [ Last edited by oilio on 2007-2-8 at 08:51 PM ] |
|
| 第2楼 Climbing | 发表于 2007-02-09 21:39 |
| 铂金会员 发帖 2,753 积分 6,962 来自 河北保定 | |
|
自己试一下好了。
|
|
| 第3楼 lelige | 发表于 2007-03-20 23:41 |
| 初级用户 发帖 9 积分 21 | |
|
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 ] |
|
| 第4楼 everest79 | 发表于 2007-03-21 00:05 |
| 金牌会员 发帖 1,127 积分 2,564 | |
|
一行空格
|
|
| 第5楼 9527 | 发表于 2007-03-21 01:25 |
| 银牌会员 发帖 438 积分 1,185 来自 北京 | |
|
可以简单的给你举了例子吧,例如有文本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 还是原文,呵呵,里面的具体参数和应用自己在摸索吧 |
|
| 第6楼 oilio | 发表于 2007-03-21 02:16 |
| 高级用户 发帖 303 积分 641 | |
|
谢谢楼上的兄弟,我好像领悟到了一点点精髓。
|
|
| 第7楼 kgdetg1127 | 发表于 2007-10-12 23:10 |
| 初级用户 发帖 89 积分 158 | |
|
先顶,慢慢去学
|
|
| 第8楼 hxwxyz | 发表于 2007-10-13 10:39 |
| 中级用户 发帖 123 积分 245 | |
|
学习了
|
|
| 第9楼 h2thesun | 发表于 2008-03-03 23:51 |
| 初级用户 发帖 14 积分 34 | |
|
5楼不错。
|
|
| 第10楼 dslz666 | 发表于 2008-03-22 17:42 |
| 中级用户 发帖 117 积分 233 | |
|
看了3楼的渐渐地明白了,,谢谢
|
|
| 第11楼 Climbing | 发表于 2008-03-28 15:50 |
| 铂金会员 发帖 2,753 积分 6,962 来自 河北保定 | |
|
建议把楼上这个人的ID封掉同时删除其所有发帖。
|
|
| 第12楼 dosz | 发表于 2009-03-07 10:44 |
| 中级用户 发帖 188 积分 396 来自 上海 | |
Originally posted by Climbing at 2007-2-9 21:39: 帮助别人提高自己于人于已都有利 [ Last edited by dosz on 2009-3-7 at 10:51 ] 附件 for命令中 tokens=2 和 delims=, 的用法.PNG (28.5 KiB) |
|
| 第13楼 netbenton | 发表于 2009-03-07 11:00 |
| 银牌会员 发帖 752 积分 1,916 来自 广西 | |
|
tokens=项为空时只取第一项,
delims=项为空时(默认)以空格及[Tab]为分隔, |
|
| 第14楼 prospy | 发表于 2009-04-17 23:57 |
| 新手上路 发帖 2 积分 2 | |
|
很好很强大,学习了
|
|
| 第15楼 welky | 发表于 2009-04-24 10:57 |
| 新手上路 发帖 3 积分 3 | |
|
一直对for感到陌生,现在有和他亲近了点!
THANK ALL! |
|
|
[ 联系联盟系统管理团队 -
中国DOS联盟 -
标准版 ] Sponsored by ifanr Inc | © 2001–2023 |