标题: 小帮下忙哪高手,使用for处理文本,简单的。
[打印本页]
作者: loquat
时间: 2009-9-16 09:44
标题: 小帮下忙哪高手,使用for处理文本,简单的。
AD;0;张三;;18600000000;;;;;;;;;;;湖南;;;;
AD;1;李四;;13812345678;;;;;;;;;;;湖北;;;;
要把里面的这些电话号码都提取出来保存到txt
希望高手写了P,再给一个简单的注释和帮助吧。
便于菜鸟偶能好好的学习掌握for的用法。
看教程不如实战进步得快,以前看非常批处理的教程,年余了现在还是菜菜鸟。
过来CD-DOS不到一月就小有收获了。呵呵。
主要是这边的提问回答气氛稍微好点。。。
作者: Hanyeguxing
时间: 2009-9-16 10:07
@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
通过自己的猜测,实验,论证得出正确的结论
作者: tk420199
时间: 2009-9-17 23:24
setlocal enabledelayedexpansion
for /f “tokens=5 delims=:" %%i in (test.txt) do (set /a b+=1 &
echo %b%%%i)
这样为什么不行呢?
作者: Hanyeguxing
时间: 2009-9-17 23:37
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 ]
作者: tk420199
时间: 2009-9-18 00:00
谢谢了!忘记是用!!来表示了。
讲的非常详细