Board logo

标题: [文本处理] 【已解决】BAT如何提取文本指定内容?谢谢大家了! [打印本页]

作者: 1270697389    时间: 2013-10-19 13:54     标题: 【已解决】BAT如何提取文本指定内容?谢谢大家了!

本帖最后由 1270697389 于 2013-10-20 08:18 编辑

</div>
div class="ad1"><script src="/js/ml_bd02.js"></script></div>
<div class="ad1"><script src="/js/ml_bd03.js"></script></div>
<br />
        <span class="v">情不问因果...</span><span><a href="/txt/152477/13341899/index.html" target="_blank">第2节:第一章 行乐须及春(2)</a></span><span><a href="/txt/152477/13341900/index.html" target="_blank">第3节:第一章 行乐须及春(3)</a></span><span><a href="/txt/152477/13341901/index.html" title="第4节:第一章 行乐须及春(4),情不问因果">第4节:第一章 行乐须及春(4)</a></span><span><a href="/txt/152477/13341902/index.html" target="_blank">第5节:第一章 行乐须及春(5)</a></span><span><a href="/txt/152477/13341903/index.html" target="_blank">第6节:第一章 行乐须及春(6)</a></span><span><a href="/txt/152477/13341904/index.html" title="第7节:第二章 月黑风高夜(1),情不问因果">第7节:第二章 月黑风高夜(1)</a></span><span><a href="/txt/152477/13341905/index.html" target="_blank">第8节:第二章 月黑风高夜(2)</a></span><span><a href="/txt/152477/13341906/index.html" target="_blank">第9节:第二章 月黑风高夜(3)</a></span><span><a href="/txt/152477/13341907/index.html" title="第10节:第二章 月黑风高夜(4),情不问因果">第10节:第二章 月黑风高夜(4)</a></span><span><a href="/txt/152477/13341908/index.html" target="_blank">第11节:第二章 月黑风高夜(5)</a></span><span><a href="/txt/152477/13341909/index.html" target="_blank">第12节:第二章 月黑风高夜(6)</a></span><span><a href="/txt/152477/13341910/index.html" title="第13节:第三章 (1),情不问因果">第13节:第三章 (1)</a></span><span><a href="/txt/152477/13341911/index.html" target="_blank">第14节:第三章 (2)</a></span><span><a href="/txt/152477/13341912/index.html" target="_blank">第15节:第三章 (3)
我需要提取href="/txt/***********/.html" target="_blank">
中间红色的这一段,复制到a.txt里
/txt/152477/13341899/index.html
/txt/152477/13341900/index.html
/txt/152477/13341901/index.html
/txt/152477/13341912/index.html
就是这样,谢谢!
作者: apang    时间: 2013-10-19 17:59

来个纯批,不知道能不能用
  1. @echo off
  2. for /f "delims=" %%a in ('find /i "href="^<a.txt') do (
  3.     set "str=%%a"
  4.     setlocal enabledelayedexpansion
  5.     for %%b in ("!str:href=" "!") do (
  6.         endlocal
  7.         for /f tokens^=1-2delims^=^=^" %%c in ("%%~b") do (
  8.             if /i "%%d"==" target" echo,%%c
  9.         )
  10.     )
  11. )
  12. pause
复制代码

作者: apang    时间: 2013-10-19 18:03

本帖最后由 apang 于 2013-10-19 18:04 编辑

vbs
  1. Set fso = CreateObject("Scripting.FileSystemObject")
  2. text = fso.OpenTextFile("a.txt").ReadAll
  3. Set re = New RegExp
  4. re.Pattern = "href=""(/txt/[^=]*\.html)"" target="
  5. re.Global = True
  6. re.IgnoreCase = True
  7. For Each a In re.Execute(text)
  8.     str = str & a.SubMatches(0) & vbCrLf
  9. Next
  10. fso.opentextfile("b.txt",2,true).Write str
复制代码

作者: 1270697389    时间: 2013-10-19 21:17

来个纯批,不知道能不能用
apang 发表于 2013-10-19 17:59



    这个代码只能提取前30个,后面的提取不了,能改进一下吗?谢谢您!
作者: 1270697389    时间: 2013-10-19 21:19

vbs
apang 发表于 2013-10-19 18:03



    谢谢您,可以执行,要是有纯批处理的就好了。
作者: apang    时间: 2013-10-19 21:46

回复 4# 1270697389


    如果文本中存在超长行,纯批没有办法解决
作者: 1270697389    时间: 2013-10-20 08:15

回复  1270697389


    如果文本中存在超长行,纯批没有办法解决
apang 发表于 2013-10-19 21:46



    非常感谢!
作者: 1270697389    时间: 2013-10-20 08:17

谢谢apang的帮助,谢谢!完美实现
作者: 1270697389    时间: 2013-10-21 19:09

vbs
apang 发表于 2013-10-19 18:03



    你好!这个批处理很好用,可是我不会变通,比如我要复制文本中的:
a.txt
这个批处理很好用,可是我不会变通,比如我要复制文本中的
Set fso = CreateObject("Scripting.FileSystemObject")
text = fso.OpenTextFile("a.txt").ReadAll
Set re = New RegExp
rem re.Pattern = "href=""(/txt/[^=]*\.html)"" target="
re.Pattern = "这""(个[^=]*\文)"" 本"  
re.Global = True
re.IgnoreCase = True
For Each a In re.Execute(text)
    str = str & a.SubMatches(0) & vbCrLf
Next
fso.opentextfile("b.txt",2,true).Write str

可是我改了这一段运行不了。谢谢
作者: apang    时间: 2013-10-21 21:26

回复 9# 1270697389


   比如,提取 "这个" 与 "文本" 之间的内容,括弧包围的就代表要提取的内容:
这个批处理很好用,可是这个我不会变通,比如我要复制文本中的文本
re.Pattern = ".*这个(.*?)文本"

这个批处理很好用,可是这个我不会变通,比如我要复制文本中的文本
re.Pattern = "这个(.*)文本"
作者: 1270697389    时间: 2013-10-22 07:43

回复  1270697389


   比如,提取 "这个" 与 "文本" 之间的内容,括弧包围的就代表要提取的内容:
这 ...
apang 发表于 2013-10-21 21:26



    太好了,谢谢!
作者: 1270697389    时间: 2013-10-22 10:58

回复  1270697389


   比如,提取 "这个" 与 "文本" 之间的内容,括弧包围的就代表要提取的内容:
这 ...
apang 发表于 2013-10-21 21:26



    <li><a href="http://www.chuxingyi.net/txt/1_1.html">玄幻</a></li>
向这种怎么写:
re.Pattern = "href=""(.*)""^>"
作者: work345    时间: 2013-10-22 11:44

:)学习下 :):)




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