中国DOS联盟论坛

中国DOS联盟

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

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

游客:  注册 | 登录 | 命令行 | 会员 | 搜索 | 上传 | 帮助 »
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » 求助-从一txt文档中提取email地址
« [1] [2] [3] »
作者:
标题: 求助-从一txt文档中提取email地址 上一主题 | 下一主题
uime
初级用户





积分 70
发帖 27
注册 2006-9-19
来自 河南
状态 离线
『楼 主』:  求助-从一txt文档中提取email地址

现有一txt文档,想提取其中的email地址
文件如下

[ Last edited by uime on 2006-9-26 at 05:27 ]

附件 1: email.txt (2006-9-25 19:00, 57.81 K, 下载附件所需积分 1 点 ,下载次数: 113)
2006-9-25 18:59
查看资料  访问主页  发短消息 网志   编辑帖子  回复  引用回复
namejm
荣誉版主

batch fan


积分 5226
发帖 1737
注册 2006-3-10
来自 成都
状态 离线
『第 2 楼』:  

  试试下面的代码:
@echo off
setlocal enabledelayedexpansion
for /f "tokens=2,3 delims==@ " %%i in ('findstr @ email.txt') do (
    set var=%%i
    set "var=!var:"=!"
    echo !var!@%%j
)
pause
[ Last edited by namejm on 2006-9-25 at 19:56 ]



尺有所短,寸有所长,学好CMD没商量。
考虑问题复杂化,解决问题简洁化。
2006-9-25 19:50
查看资料  发短消息 网志   编辑帖子  回复  引用回复
NaturalJ0
银牌会员




积分 1181
发帖 533
注册 2006-8-14
状态 离线
『第 3 楼』:  


setlocal ENABLEDELAYEDEXPANSION
for /f "delims== tokens=2" %%i in ('find "@" email.txt') do (set emailtemp=%%i
echo !emailtemp:~0,-5!>>b.txt)


2006-9-25 20:03
查看资料  发短消息 网志   编辑帖子  回复  引用回复
NaturalJ0
银牌会员




积分 1181
发帖 533
注册 2006-8-14
状态 离线
『第 4 楼』:  

早啊,namejm ,发现你手比我快。 = =

2006-9-25 20:05
查看资料  发短消息 网志   编辑帖子  回复  引用回复
NaturalJ0
银牌会员




积分 1181
发帖 533
注册 2006-8-14
状态 离线
『第 5 楼』:  

不过,这句什么意思,我没看懂。

    set "var=!var:"=!"

好像不写结果也一样。

2006-9-25 20:13
查看资料  发短消息 网志   编辑帖子  回复  引用回复
namejm
荣誉版主

batch fan


积分 5226
发帖 1737
注册 2006-3-10
来自 成都
状态 离线
『第 6 楼』:  



  Quote:
Originally posted by NaturalJ0 at 2006-9-25 20:13:
    set "var=!var:"=!"
好像不写结果也一样。

如果不写这一句,那么,xliu@cqnu.edu.cn 这条记录将会在最前面的 x 处带个前引号,我也是后来测试的时候才发现的。



尺有所短,寸有所长,学好CMD没商量。
考虑问题复杂化,解决问题简洁化。
2006-9-25 20:37
查看资料  发短消息 网志   编辑帖子  回复  引用回复
9527
银牌会员

努力做坏人


积分 1185
发帖 438
注册 2006-8-28
来自 北京
状态 离线
『第 7 楼』:  

for /f "tokens=2 delims== " %x in ('findstr "@" email.txt') do echo %~x



我今后在论坛的目标就是做个超级坏人!!!
2006-9-25 21:30
查看资料  发短消息 网志  OICQ (329429)  编辑帖子  回复  引用回复
uime
初级用户





积分 70
发帖 27
注册 2006-9-19
来自 河南
状态 离线
『第 8 楼』:  

谢谢大家

我的问题和5楼的一样
引号好像也不配套啊

如果是同时提取用户名和email呢?
就像:
name email
的格式

[ Last edited by uime on 2006-9-25 at 22:01 ]

2006-9-25 21:56
查看资料  访问主页  发短消息 网志   编辑帖子  回复  引用回复
redtek
金牌会员





积分 2902
发帖 1147
注册 2006-9-21
状态 离线
『第 9 楼』:  

Mail名与Mail地址分离:
@rem  ==================== SearchMail.Bat ==================
@echo off

for /f "tokens=2 delims== " %%i in ('findstr @ email.txt') do (
        for /f "tokens=1,2 delims=@" %%a in ("%%i") do echo %%a        %%a@%%b >> Ok_Email.txt
)

Notepad.exe Ok_Email.txt
[ Last edited by redtek on 2006-9-26 at 00:46 ]

2006-9-26 00:31
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
pengfei
银牌会员




积分 1218
发帖 485
注册 2006-7-21
来自 湖南.娄底
状态 离线
『第 10 楼』:  

强! 顶一个先.

2006-9-26 02:32
查看资料  发送邮件  发短消息 网志  OICQ (573381312)  编辑帖子  回复  引用回复
pengfei
银牌会员




积分 1218
发帖 485
注册 2006-7-21
来自 湖南.娄底
状态 离线
『第 11 楼』:  

仔细看过之后, 才发现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 ]

2006-9-26 03:30
查看资料  发送邮件  发短消息 网志  OICQ (573381312)  编辑帖子  回复  引用回复
zerostudy
中级用户





积分 266
发帖 98
注册 2006-4-21
状态 离线
『第 12 楼』:  

头晕~~

2006-9-26 04:16
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
uime
初级用户





积分 70
发帖 27
注册 2006-9-19
来自 河南
状态 离线
『第 13 楼』:  

真的不错,谢谢大家的热心,虽然执行了,但是对for语句还是有点模糊

[ Last edited by uime on 2006-9-26 at 05:14 ]

2006-9-26 04:50
查看资料  访问主页  发短消息 网志   编辑帖子  回复  引用回复
hushi8888
新手上路





积分 8
发帖 2
注册 2006-9-25
状态 离线
『第 14 楼』:  

可能EXCEL处理数量较少的这样的文件比较快!

2006-9-26 04:52
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
redtek
金牌会员





积分 2902
发帖 1147
注册 2006-9-21
状态 离线
『第 15 楼』:  

哇噻~~爽~!!!

2006-9-26 05:00
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
« [1] [2] [3] »
请注意:您目前尚未注册或登录,请您注册登录以使用论坛的各项功能,例如发表和回复帖子等。


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



论坛跳转: