[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

[文本处理] [已解决]批处理怎样提取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 编辑 ]
1

评分人数

    • Batcher: 感谢主动给标题标注[已解决]字样PB + 2

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

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

[local]1[/local]
http://www.2164.top/

TOP

出现黄色条提示时 点它 弹出菜单后点“允许阻止的内容” 接着选“是” 点保存后也选 “是”
http://www.2164.top/

TOP

以第三方命令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$
复制代码
1

评分人数

寒夜孤星:在没有说明的情况下,本人所有代码均运行在 XP SP3 下 (有问题请发贴,QQ临时会话已关闭)

TOP

试试把下列内容保存为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
复制代码

TOP

测试结果:

1楼 3楼正确,2楼运行结果为空了

TOP

回复 6楼 的帖子

如果fr命令已下载,那么检查a.txt文本是否是ansi编码!
寒夜孤星:在没有说明的情况下,本人所有代码均运行在 XP SP3 下 (有问题请发贴,QQ临时会话已关闭)

TOP

  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. )
复制代码

TOP

返回列表