中国DOS联盟论坛

中国DOS联盟

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

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

游客:  注册 | 登录 | 命令行 | 会员 | 搜索 | 上传 | 帮助 »
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » 小帮下忙哪高手,使用for处理文本,简单的。
作者:
标题: 小帮下忙哪高手,使用for处理文本,简单的。 上一主题 | 下一主题
loquat
初级用户





积分 81
发帖 80
注册 2009-8-30
状态 离线
『楼 主』:  小帮下忙哪高手,使用for处理文本,简单的。



  Quote:
AD;0;张三;;18600000000;;;;;;;;;;;湖南;;;;
AD;1;李四;;13812345678;;;;;;;;;;;湖北;;;;

要把里面的这些电话号码都提取出来保存到txt

希望高手写了P,再给一个简单的注释和帮助吧。

便于菜鸟偶能好好的学习掌握for的用法。

看教程不如实战进步得快,以前看非常批处理的教程,年余了现在还是菜菜鸟。

过来CD-DOS不到一月就小有收获了。呵呵。

主要是这边的提问回答气氛稍微好点。。。

2009-9-16 09:44
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
Hanyeguxing
银牌会员

正在学习中的菜鸟...


积分 1039
发帖 897
注册 2009-3-1
来自 在地狱中仰望天堂
状态 离线
『第 2 楼』:  


@echo off
for /f "tokens=4 delims=;" %%a in (test.txt) do >>test_.txt echo %%a
以;替换默认的空格和制表符为分隔符,这样解析时电话那一段就是第4区段,将这一区段赋值给变量%%a。
作为一个初学者,要善于使用echo和pause,在适当的位置,观察分析变量的变化。
例如这里,就可以写成
@echo off
for /f "tokens=1,2,3,4,5 delims=;" %%a in (test.txt) do echo %%a一%%b二%%c三%%d四%%e
pause
通过自己的猜测,实验,论证得出正确的结论



批处理之家 http://bbs.bathome.net/forum-5-1.html
2009-9-16 10:07
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
tk420199
初级用户





积分 40
发帖 20
注册 2008-7-21
状态 离线
『第 3 楼』:  

setlocal enabledelayedexpansion
for /f “tokens=5 delims=:" %%i in (test.txt) do (set /a b+=1 &
echo %b%%%i)
这样为什么不行呢?

2009-9-17 23:24
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
Hanyeguxing
银牌会员

正在学习中的菜鸟...


积分 1039
发帖 897
注册 2009-3-1
来自 在地狱中仰望天堂
状态 离线
『第 4 楼』:  



  Quote:
Originally posted by tk420199 at 2009-9-17 23:24:
setlocal enabledelayedexpansion
for /f “tokens=5 delims=:" %%i in (test.txt) do (set /a b+=1 &
echo %b%%%i)
这样为什么不行呢?

1,tokens=5 delims=:"应写成"tokens=5 delims=:",英文引号使用错误。
2,&是连接符,他必须处于两个命令之间。
3,%b%应该写成!b!,动态捕获他的变化。
4,在这里,set /a b+=1和&之间最好不要有空格,因为赋值时,是将=和&之间的所有字符都赋值,也包括空格,容易产生问题。
setlocal enabledelayedexpansion
for /f "tokens=5 delims=:" %%i in (test.txt) do set /a b+=1&echo !b!%%i
[ Last edited by Hanyeguxing on 2009-9-17 at 23:49 ]

   此帖被 +2 点积分    点击查看详情   
评分人:【 tk420199 分数: +2  时间:2009-9-17 23:59




批处理之家 http://bbs.bathome.net/forum-5-1.html
2009-9-17 23:37
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
tk420199
初级用户





积分 40
发帖 20
注册 2008-7-21
状态 离线
『第 5 楼』:  

谢谢了!忘记是用!!来表示了。
讲的非常详细

2009-9-18 00:00
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复

请注意:您目前尚未注册或登录,请您注册登录以使用论坛的各项功能,例如发表和回复帖子等。


可打印版本 | 推荐给朋友 | 订阅主题 | 收藏主题



论坛跳转: