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

[文本处理] [已解决]批处理如何从大量html文件中提取指定的tag中的内容?

本帖最后由 liyanqi159 于 2015-4-3 18:09 编辑

源文件是html格式,文件名为1.html,2.html

  比如 1.html 里的内容为     <li>To set a photo as the wallpaper, tap <b>Enter Gallery</b>, select and crop a photo, and then tap <b>Apply</b>.</li>
         2.html 里的内容为     <li>To use a  wallpaper, tap the wallpaper thumbnail, and then tap <b>Apply</b>.</li>

把红色的文字提取出来放到一个1.txt文件中。
文本里的内容为
1.html Enter Gallery
1.html Apply
2.html Apply

谢谢大神啦!

是否方便提供一份或多份源文件用于测试代码?

TOP

回复 2# bailong360


附件是3个htm文件,谢谢啦

TOP

本帖最后由 bailong360 于 2015-4-3 17:52 编辑
  1. @echo off
  2. setlocal enabledelayedexpansion
  3. For /F "Delims=" %%i In ('Dir /B *.htm') Do (
  4.     For /F "Delims=" %%j In ('Findstr "<li>" "%%i"^|Grep -oP "(?<=<b>)..*?(?=</b>)"') Do >>提取.txt Echo %%~nxi.html %%j
  5. )
  6. pause
复制代码
是否符合要求?
本代码需要第三方grep支持,下载后与批处理放在同一目录下
http://batch-cn.qiniudn.com/tool/2.5.1/grep.exe
1

评分人数

TOP

回复 4# bailong360


  测试了,可以用,太感谢了!!!不用grep直接用批处理可以实现吗?

TOP

回复 5# liyanqi159


    以我的能力怕是实现起来比较麻烦

PS 问题解决后记得标注[已解决]

TOP

  1. @echo off
  2. setlocal enabledelayedexpansion
  3. (for /f "tokens=1* delims=:" %%a in ('findstr "<b>" *.htm') do (
  4.     set var=&set "ln=%%b"
  5.     for %%c in ("!ln:</b>=" "!") do (
  6.         if defined var echo,%%a !var:*^<b^>=!
  7.         set "var=%%~c"
  8.     )
  9. ))>1.txt
  10. pause
复制代码

TOP

返回列表