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

[文本处理] [已解决]批处理从多个html文件中提取特定内容组成新的文本文件

菜鸟求助
  我想做一个批处理,要从一个指定存放html文件的目录中中提取html内特定字符到一个新的txt文件中;html中如下内容:
1.html内容:
<div style="text-align:center;"><h1>此处文字一</h1></div>
<div id=content_nei>
  <center>
   <div class="play" id="playlist">
   
    <!--片头广告加载开始-->
    <p id="loading1" style="z-index:1000"><iframe MARGINWIDTH=0 MARGINHEIGHT=0  HSPACE=0 VSPACE=0 FRAMEBORDER=0 SCROLLING=no src="loading.html" tppabs=".../template/x_skin9_b/images/g_js/loading.html" width="720" height="480" id="loading11"></iframe></p>
    <i id="loading2" style="display:none; "><script>play_qvod_1('qvod://362593782|E10FD12282EBD0624FDE29B99FFF570B25BA83D8|2137215 00.rmvb|',w_qvod_w_1,w_qvod_h_1)</script></i>
    <!--片头广告加载结束-->

2.html内容:
<div style="text-align:center;"><h1>此处文字二</h1></div>
<div id=content_nei>
  <center>
   <div class="play" id="playlist">
   
    <!--片头广告加载开始-->
    <p id="loading1" style="z-index:1000"><iframe MARGINWIDTH=0 MARGINHEIGHT=0  HSPACE=0 VSPACE=0 FRAMEBORDER=0 SCROLLING=no src="loading.html" tppabs=".../template/x_skin9_b/images/g_js/loading.html" width="720" height="480" id="loading11"></iframe></p>
    <i id="loading2" style="display:none; "><script>play_qvod_1('qvod://337781456|114E4002F84E2F770439F66ACA97B16E4E21A495|0601-2_6Hello Titty 4 Part.1.rmvb|',w_qvod_w_1,w_qvod_h_1)</script></i>
    <!--片头广告加载结束-->
   

我要实现生成一个新的txt文本,文本显示内容如下:


此处文字一   qvod://362593782|E10FD12282EBD0624FDE29B99FFF570B25BA83D8|2137215 00.rmvb|
此处文字二   qvod://337781456|114E4002F84E2F770439F66ACA97B16E4E21A495|0601-2_6Hello Titty 4 Part.1.rmvb|




差不多就是这样



一、提取附件html文件中 <h1> 到</h1>  之间的文字.《其中包含<h1>、</h1>》
二、再提取 qvod:// 到 rmvb| 之间的字符.《其中包含qvod:// 、rmvb|》

三、将提取内容写入一个新的文本中,文本内容如下:
<h1>屋頂也瘋狂</h1>  qvod://129082483|0F025A9B1B48516D9DB4CD54162CFF4CE5338132|2137215屋頂也瘋狂.rmvb|  


特别说明:我要在同一目录下对多个html文件执行提取操作

[ 本帖最后由 liujun409534709 于 2010-7-25 22:45 编辑 ]

楼上想的周全   呵呵

TOP

  为了兼容特殊字符,在每行的首尾添加了引号:
  1. @echo off
  2. cd.>url.txt
  3. for %%i in (*.html) do (
  4.     for /f "tokens=4 delims=<>" %%j in ('findstr /i "\<h1\>.*\</h1\>" %%i') do set "str=<h1>%%j</h1>"
  5.     for /f "tokens=2 delims=/." %%j in ('findstr /i "qvod://.*rmvb|" %%i') do call echo "%%str%% qvod://%%j.rmvb|">>url.txt
  6. )
  7. pause
复制代码
尺有所短寸有所长,学好批处理没商量;
考虑问题复杂化,解决问题简洁化。

心在天山,身老沧州。

TOP

仅征对你提供文本的特征,解决具体问题,不具有通用性。
测试楼主提供的样本是成功的:
  1. @echo off&setlocal enabledelayedexpansion
  2. for /f "tokens=1* delims=:" %%i in ('findstr /r /c:"<h1>.*</h1>" *.html') do (
  3. set "str=%%j"
  4. set "str=!str:*<h1>=!"
  5. set "%%i=^<h1^>!str:~0,-6!"
  6. )
  7. (for /f "tokens=1* delims=:" %%i in ('findstr /r /c:"\<qvod://.*rmvb|\>" *.html') do (
  8. set "str=%%j"
  9. set "str=!str:*qvod://=!"
  10. echo !%%i!  qvod://!str:~0,-37!
  11. ))>a.txt
复制代码

[ 本帖最后由 wankoilz 于 2010-7-24 22:09 编辑 ]

TOP

饿

在我们论坛,“违规必究”不仅仅只是一句口号。

TOP

论坛张贴代码会走样,请以附件形式提供原始网页文件。
你需要的内容,请用详细的文字描述,而不应说:我要的文字是红色部分、我要的文字在这里那里……我们需要的是对字符出现位置规律的描述,而不是给个图说我要的在这个位置或那个位置,这样的话,没有谁能准确地理解你的意思。
所有的内容请更新在顶楼。
尺有所短寸有所长,学好批处理没商量;
考虑问题复杂化,解决问题简洁化。

心在天山,身老沧州。

TOP

返回列表