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

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

本帖最后由 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
花开不问月,不语笑红尘.

  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
复制代码
初学BAT,非专业。代码不适当之处还望前辈们多多指点。在此表示感谢!

TOP

获取指定行:
  1. findstr /n .* a.txt|findstr "^203:"
复制代码
findstr搜索带空格的字符串:
  1. findstr /c:"IP Address" a.txt
复制代码
看得多说得多,远比不上写得多。

TOP

回复 3# weichenxiehou


    感谢回复 受教了。
花开不问月,不语笑红尘.

TOP

回复 2# xxpinqz


    感谢回复 受教了。
花开不问月,不语笑红尘.

TOP

返回列表