Board logo

标题: [文本处理] [已解决]批处理怎样提取a.txt中的网址? [打印本页]

作者: daohe    时间: 2010-5-31 14:03     标题: [已解决]批处理怎样提取a.txt中的网址?

如题,提取a.txt中href=“到”之间的部分,并且每一条作为一行,处理完后每行前面加上http://www.wholesale-watches.org/补全地址,处理后结果b.txt
http://www.wholesale-watches.org/luxury-watches.html
http://www.wholesale-watches.org/fashion-watches.html
http://www.wholesale-watches.org/sport-watches.html
……
太多了就不一一写了
[attach]2587[/attach]

[ 本帖最后由 daohe 于 2010-5-31 23:25 编辑 ]
作者: zmh886    时间: 2010-5-31 14:46

居然不支持上传 rar 和htm格式 只好改成txt上传了

修改为htm格式 打开后 点保存按钮保存到b.txt

[local]1[/local]
作者: zmh886    时间: 2010-5-31 14:49

出现黄色条提示时 点它 弹出菜单后点“允许阻止的内容” 接着选“是” 点保存后也选 “是”
作者: hanyeguxing    时间: 2010-5-31 15:26

以第三方命令fr或sed等完成操作:
fr下载地址:http://ishare.iask.sina.com.cn/f/7088512.html
  1. copy a.txt $temp$>nul
  2. fr $temp$ -ric:"<a href=\"" -t:"\r\nhttp://www.wholesale-watches.org/"
  3. fr $temp$ -ric:"\"" -t:"\r\n"
  4. findstr /b /l /c:"http://www.wholesale-watches.org/" $temp$>b.txt
  5. del $temp$
复制代码

作者: youxi01    时间: 2010-5-31 15:45

试试把下列内容保存为test.vbs,同时把你的a.txt与test.vbs放在相同的目录下,直接运行test.vbs即可。
  1. Dim FSO, objFile, FileName, FileContent
  2. FileName = "F:\a.txt"
  3. Set FSO = CreateObject("Scripting.FileSystemObject")
  4. Set objFile = FSO.OpenTextFile(FileName, 1, False)
  5. FileContent = objFile.ReadAll
  6. RetStr=MyRegExp("<a(.+?)href=""*([^\s]+)""([^>]+|>)",FileContent)
  7. FSO.CreateTextFile("Res.txt",True).Write RetStr
  8. Set objFile=Nothing
  9. Set FSO = Nothing
  10. '/*/////////////////////////////////////////////////////////
  11. '*MadeTime:    2010-5-31
  12. '*LastModify:   2010-5-31
  13. '*功能: 正则提取内容
  14. '*参数: 正则表达式,处理字符串
  15. '**********************************************************
  16. Function MyRegExp(Patrn,strng)
  17. Dim InsertURL
  18. InsertURL="http://www.wholesale-watches.org/"
  19. Set RegEx1=New RegExp
  20.    
  21. RegEx1.Pattern = Patrn
  22. RegEx1.IgnoreCase=True     
  23. RegEx1.Global=True
  24. Set Matches =RegEx1.Execute(strng)   
  25. For Each Match In Matches      
  26. RetStr=RetStr & InsertURL & Match.submatches(1) & vbcrlf
  27. Next
  28. MyRegExp=RetStr
  29. Set RegEx1=Nothing
  30. End Function
复制代码

作者: daohe    时间: 2010-5-31 23:37

测试结果:

1楼 3楼正确,2楼运行结果为空了
作者: hanyeguxing    时间: 2010-6-1 16:25     标题: 回复 6楼 的帖子

如果fr命令已下载,那么检查a.txt文本是否是ansi编码!
作者: lvsehuaxue    时间: 2011-5-22 11:40

  1. @echo off&setlocal enabledelayedexpansion
  2. for /f "delims=" %%i in (a.txt) do (
  3.     set "v=%%i"
  4.     set "v=!v:"= !"
  5.     for %%a in (!v!) do (
  6.     echo "%%a" |findstr "html">nul && echo http://www.wholesale-watches.org/%%~a
  7.     )
  8. )
复制代码





欢迎光临 批处理之家 (http://www.bathome.net/) Powered by Discuz! 7.2