找回密码
 注册
搜索
[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
查看: 24858|回复: 4

[文件操作] 批处理如何提取文本中指定行中的指定内容?

[复制链接]
发表于 2013-8-8 10:53:30 | 显示全部楼层 |阅读模式
本帖最后由 pcl_test 于 2016-9-20 12:10 编辑

有一个html文件  我想在指定的行上获取字符 然后从中取出某字符
例如1.html  skip=202 我需要的数据在203行上 所以我跳202 然后从中 获取字符串, 但是html还有204行 205行等。 我只想取202行的 ,这该如何操作呢?

本来想过使用find "IP Address" 但是html中有多个IP Address  如果使用 findstr \<IP Address>\ 的话 发现命令是不对的  我不知道带空格的字符串怎么表示 ?

findstr  "\<IP Address>\ "  findstr \<"IP Address">\ 均不可以.
findstr 可以跳到指定行再搜索吗?我看帮助里有个^表示行的开始  不知道是不是跳行的意思 ?
文本内容 :

  1. ....
  2. .....
  3. ....
  4. ....
  5. (202行)
  6. <table id="result" summary="IP Address Information">
  7.                     <tr><td id="question">IP Address </td><td id="answer">101.xxx.xxx.xxx</td></tr>
  8.                     <tr><td id="question">Host Name </td><td id="answer" nowrap>proxyb16.city.toshim<br><br></td></tr>
  9.                     <tr><td id="question">Country</td><td id="answer">Japan  <img src="/image/flag/jp.gif"></td></tr>
  10.                               <tr><td id='question'>Network(ASN)</td><td id='answer'>        TOSHIMA-KU
  11. </td></tr>
  12. <tr><td id='question'>IP Prefix</td><td id='answer'>        101.xxx.xxx.xxx - 101.xxx.xxx.xxx
  13. </td></tr>
  14. <tr><td id='question'>Description</td><td id='answer'><a href=http://www.google.com/search?q=city.toshima>          city.toshima
  15. </a></td></tr>
  16. ....
  17. ....
  18. ...
复制代码
想要的输入结果:
IP Address  101.xxx.xxx.xxx
Host Name  proxyb16.city.toshim
Country   Japan
Network(ASN)  TOSHIMA-KU
IP Prefix   101.xxx.xxx.xxx -101.xxx.xxx.xxx
Description city.toshima
发表于 2013-8-8 17:58:05 | 显示全部楼层

  1. @echo off
  2. (for /f "skip=202 tokens=*" %%i in (1.html) do (
  3.   if not defined . (
  4.         for /f "tokens=3,6,7 delims=<>" %%a in ("%%i") do (
  5.             if /I "%%a"=="Description" (
  6.                     echo,%%a %%c
  7.                     set .=.
  8.             ) else (
  9.                 echo,%%a %%b
  10.         )
  11. ))))>2.txt
  12. start 2.txt
复制代码
发表于 2013-8-8 19:09:51 | 显示全部楼层
获取指定行:
  1. findstr /n .* a.txt|findstr "^203:"
复制代码
findstr搜索带空格的字符串:
  1. findstr /c:"IP Address" a.txt
复制代码
 楼主| 发表于 2013-8-9 15:19:49 | 显示全部楼层
回复 3# weichenxiehou


    感谢回复 受教了。
 楼主| 发表于 2013-8-9 15:20:14 | 显示全部楼层
回复 2# xxpinqz


    感谢回复 受教了。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|批处理之家 ( 渝ICP备10000708号 )

GMT+8, 2026-3-21 00:24 , Processed in 0.029974 second(s), 17 queries .

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表