中国DOS联盟论坛

中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --
联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum
游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟
中国DOS联盟论坛
现在时间是 2026-08-12 11:46
47,811 主题排行 / 349,897 发帖 / 今日 0 篇 / 48,256 会员排行
DOS批处理 & 脚本技术(批处理室) » 小帮下忙哪高手,使用for处理文本,简单的。
可打印版本  769 / 4
第1楼 loquat 发表于 2009-09-16 09:44
初级用户 发帖 80 积分 81
小帮下忙哪高手,使用for处理文本,简单的。
AD;0;张三;;18600000000;;;;;;;;;;;湖南;;;;
AD;1;李四;;13812345678;;;;;;;;;;;湖北;;;;

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

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

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

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

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

主要是这边的提问回答气氛稍微好点。。。
第2楼 Hanyeguxing 发表于 2009-09-16 10:07
银牌会员 发帖 897 积分 1,039 来自 在地狱中仰望天堂

以;替换默认的空格和制表符为分隔符,这样解析时电话那一段就是第4区段,将这一区段赋值给变量%%a。
作为一个初学者,要善于使用echo和pause,在适当的位置,观察分析变量的变化。
例如这里,就可以写成
通过自己的猜测,实验,论证得出正确的结论
第3楼 tk420199 发表于 2009-09-17 23:24
初级用户 发帖 20 积分 40
setlocal enabledelayedexpansion
for /f “tokens=5 delims=:" %%i in (test.txt) do (set /a b+=1 &
echo %b%%%i)
这样为什么不行呢?
第4楼 Hanyeguxing 发表于 2009-09-17 23:37
银牌会员 发帖 897 积分 1,039 来自 在地狱中仰望天堂
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和&之间最好不要有空格,因为赋值时,是将=和&之间的所有字符都赋值,也包括空格,容易产生问题。



[ Last edited by Hanyeguxing on 2009-9-17 at 23:49 ]
第5楼 tk420199 发表于 2009-09-18 00:00
初级用户 发帖 20 积分 40
谢谢了!忘记是用!!来表示了。
讲的非常详细
[ 联系联盟系统管理团队 - 中国DOS联盟 - 标准版 ]
Sponsored by ifanr Inc | © 2001–2023