![]() |
中国DOS联盟-- 联合DOS 推动DOS 发展DOS --联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum |
| 游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟 |
|
中国DOS联盟论坛 现在时间是 2026-09-15 12:14 |
共 47,812 主题排行 / 349,917 发帖 / 今日 0 篇 / 48,268 会员排行 |
| DOS批处理 & 脚本技术(批处理室) » 求助-从一txt文档中提取email地址 |
| 可打印版本 7,676 / 32 |
| 第1楼 uime | 发表于 2006-09-25 18:59 |
| 初级用户 发帖 27 积分 70 来自 河南 | |
|
求助-从一txt文档中提取email地址 现有一txt文档,想提取其中的email地址
文件如下 [ Last edited by uime on 2006-9-26 at 05:27 ] 附件 email.txt (57.81 KiB) |
|
| 第2楼 namejm | 发表于 2006-09-25 19:50 |
| 荣誉版主 发帖 1,737 积分 5,226 来自 成都 | |
|
试试下面的代码:
[ Last edited by namejm on 2006-9-25 at 19:56 ] |
|
| 第3楼 NaturalJ0 | 发表于 2006-09-25 20:03 |
| 银牌会员 发帖 533 积分 1,181 | |
| 第4楼 NaturalJ0 | 发表于 2006-09-25 20:05 |
| 银牌会员 发帖 533 积分 1,181 | |
|
早啊,namejm ,发现你手比我快。 = =
|
|
| 第5楼 NaturalJ0 | 发表于 2006-09-25 20:13 |
| 银牌会员 发帖 533 积分 1,181 | |
|
不过,这句什么意思,我没看懂。
set "var=!var:"=!" 好像不写结果也一样。 |
|
| 第6楼 namejm | 发表于 2006-09-25 20:37 |
| 荣誉版主 发帖 1,737 积分 5,226 来自 成都 | |
Originally posted by NaturalJ0 at 2006-9-25 20:13: 如果不写这一句,那么,xliu@cqnu.edu.cn 这条记录将会在最前面的 x 处带个前引号,我也是后来测试的时候才发现的。 |
|
| 第7楼 9527 | 发表于 2006-09-25 21:30 |
| 银牌会员 发帖 438 积分 1,185 来自 北京 | |
|
for /f "tokens=2 delims== " %x in ('findstr "@" email.txt') do echo %~x
|
|
| 第8楼 uime | 发表于 2006-09-25 21:56 |
| 初级用户 发帖 27 积分 70 来自 河南 | |
|
谢谢大家
我的问题和5楼的一样 引号好像也不配套啊 如果是同时提取用户名和email呢? 就像: name email 的格式 [ Last edited by uime on 2006-9-25 at 22:01 ] |
|
| 第9楼 redtek | 发表于 2006-09-26 00:31 |
| 金牌会员 发帖 1,147 积分 2,902 | |
|
Mail名与Mail地址分离:
[ Last edited by redtek on 2006-9-26 at 00:46 ] |
|
| 第10楼 pengfei | 发表于 2006-09-26 02:32 |
| 银牌会员 发帖 485 积分 1,218 来自 湖南.娄底 | |
|
强! 顶一个先.
|
|
| 第11楼 pengfei | 发表于 2006-09-26 03:30 |
| 银牌会员 发帖 485 积分 1,218 来自 湖南.娄底 | |
|
仔细看过之后, 才发现9楼朋友的代码提取的内容并不是楼主预期的.
在写代码的过程中发现楼主的网页内容存在错误, 如: 熊明勇、刘玺、dage三个名字后面跟的并不是有效的E-mail地址, 在取E-mail时需要多用一个判断. 整段代码的工作效率是比较低的。写完这段代码, 我神智已经不清醒了, 呵呵~ 也没有进行优化。请大家测试~~~ @echo off setlocal enabledelayedexpansion for /f "tokens=5 delims==" %%i in ('findstr /i /c:"WIDTH: 80px" email.txt') do ( set /a one=!one!+1 set num=1 set two= for /f "tokens=2 delims== " %%a in ('findstr /i /c:"uemail" email.txt') do ( set /a two=!two!+1 if /i "!num!"=="1" ( if /i not "%%a"=="150><INPUT class" ( if /i not "%%i"=="uname></TD>" ( if /i "!one!"=="!two!" ( echo %%i %%~a>>name.txt set num= ) ) ) ) ) ) pause [ Last edited by pengfei on 2006-9-26 at 09:01 ] |
|
| 第12楼 zerostudy | 发表于 2006-09-26 04:16 |
| 中级用户 发帖 98 积分 266 | |
|
头晕~~
|
|
| 第13楼 uime | 发表于 2006-09-26 04:50 |
| 初级用户 发帖 27 积分 70 来自 河南 | |
|
真的不错,谢谢大家的热心,虽然执行了,但是对for语句还是有点模糊
[ Last edited by uime on 2006-9-26 at 05:14 ] |
|
| 第14楼 hushi8888 | 发表于 2006-09-26 04:52 |
| 新手上路 发帖 2 积分 8 | |
|
可能EXCEL处理数量较少的这样的文件比较快!
|
|
| 第15楼 redtek | 发表于 2006-09-26 05:00 |
| 金牌会员 发帖 1,147 积分 2,902 | |
|
哇噻~~爽~!!!
|
|
| 1 2 3 下一页 |
|
[ 联系联盟系统管理团队 -
中国DOS联盟 -
标准版 ] Sponsored by ifanr Inc | © 2001–2023 |