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

[文本处理] 批处理怎样提取多个文本内的网址?

我电脑上现在有好多个 txt文件 download(1).txt   到 download(10000).txt
里面的内容如下
download(1).txt  内容

<br><b>文件名称:</b><u>AN7173NK.gif</u><br><b>文件大小:</b>11KB<br><b>下载地址:
http://www.jddl.net/hm/download/gif/chip/c/CXA11s33.gif

download(2).txt 内容
<br><b>文件名称:</b><u>CXA1191M.gif</u><br><b>文件大小:</b>12KB<br><b>下载地址:http://www.jddl.net/hm/download/gif/chip/c/CXA1191M.gif

其他文本内容都大概相似,但是下载地址后缀不都是gif  有pdf的 有rar的。现在想把所有文本里的网址都提取出来 放到一个新的文本里一行显示一个地址,也就是这样
http://www.jddl.net/hm/download/gif/chip/c/CXA11s33.gif
http://www.jddl.net/hm/download/gif/chip/c/CXA1191M.gif

希望有高人能帮忙解决下

你提供的两个样本不一致,最好把一个文本直接贴上来或传上来。。。
寒夜孤星:在没有说明的情况下,本人所有代码均运行在 XP SP3 下 (有问题请发贴,QQ临时会话已关闭)

TOP

VBS
  1. 'VBS用正则表达式提取网址
  2. 'CODE BY Broly
  3. Dim fso,re,f,txt,objm
  4. Set fso=CreateObject("Scripting.Filesystemobject")
  5. Set re=New RegExp
  6. re.Global=True
  7. re.IgnoreCase=True
  8. re.Pattern="http://www\.jddl\.net/hm/download/gif/chip/c/\w+.\w+"
  9. For i=1 To 2
  10. Set f=fso.OpenTextFile("download("&i&").txt",1,false)
  11. Set objm=re.Execute(f.ReadAll)
  12. For Each ma In objm
  13.    s=ma.Value & Chr(13) & Chr(10) & s
  14. Next
  15. f.Close
  16. Next
  17. Set txt=fso.CreateTextFile("url.txt",true)
  18. txt.WriteLine(s)
  19. txt.Close
  20. WScript.Echo "已保存为url.txt"  '此行可以删了
复制代码
---学无止境---

TOP

用3楼的办法已经解决了 多谢 3楼 这里真是个好地方

TOP

回复 4楼 的帖子

对了,你把For i=1 To 2
改为For i=1 To 10000吧。
我测试时用2个文本测试。你的文本是有10000个
忘记修改回来了
---学无止境---

TOP

又发现个问题 那个网址目录结构有好多都不一样 而且文件名有中文的都提取不出来 不知还有什么方法解决不

TOP

http://www.jlgl.net/\w+/\w+/\w+/\w+/\w+.\w+ 我把网址改成这样了 但是有的目录层数不一样 也提取不出来 还有就是中文文件名无法提取

TOP

  1. re.Pattern="http://www\.jddl\.net/.+\.\w+"
复制代码
---学无止境---

TOP

全部搞定 多谢Broly

以后得好好学习学习

TOP

返回列表