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

[文本处理] 批处理如何提取文本中的特定字符串

本帖最后由 pcl_test 于 2016-11-3 16:41 编辑

如何用DOS命令截取一个txt文件中指定的“ http:// 开头和以 html 结尾”的所字串?

文件内容贴出来看看行吗?

TOP

  1. type a.txt|geturls
复制代码
或用set命令截取字符串,需要具体分析

TOP

烦请附上文本样例,可以直观些。

TOP

本帖最后由 mokson 于 2011-11-24 00:23 编辑

大家真的非常热心,我现在表达清楚一点。
在我的C:盘有一个 test.txt 文件,里面内容如下:
  1. <a id="myPost" href="http://www.bathome.net/thread-14801-1-1.html" target="_blank">我的贴子</a>
复制代码
我想用批命令自动截取 C:\text.txt 文件里那个<A>链接 href 后面的地址,即:http://www.bathome.net/thread-14801-1-1.html
并且将它回显到屏幕上.

批处理自动截取(不是用人为的定位位置的方法),请问有什么批处理命令或方法吗?
真心感谢!

TOP

  1. grep -o "http:.*\.html" test.txt
复制代码

TOP

简化版
  1. for /f "tokens=5 delims== " %%i in (c:\test.txt) do echo %%~i
  2. pause
复制代码

TOP

楼上的代码可以达到我的要求,真的很感谢
但是能给我分析一下语句吗?

TOP

简化版
小胖狐狸 发表于 2011-11-24 10:18


但是,当txt文本里面有多个链接地址时,如何匹配多个呢?

TOP

回复 9# mokson


文本内容贴出来看看

TOP

本帖最后由 CrLf 于 2011-11-25 13:43 编辑

namejm 又要内牛满面了嘿嘿:
  1. @echo off
  2. for /f "delims=" %%a in (1.txt) do (
  3.    for %%b in (%%a) do (
  4.       for /f delims^=^" %%c in ("%%b") do echo %%c
  5.    )
  6. )
  7. pause
复制代码
因为此处的等号是默认分隔符,而 url 都是被双引号括起来的,所以应该能秒杀大部分网页源文件...

TOP

本帖最后由 小胖狐狸 于 2011-12-5 15:00 编辑
楼上的代码可以达到我的要求,真的很感谢
但是能给我分析一下语句吗?
mokson 发表于 2011-11-24 12:04



    delims== 第二个=后有个空格,这是表示:以=和空格这两个符号作为分隔符,将一行语句进行分段
    token=5  表示取分段后的第五段,在你的例子里就是“http://……”
    echo %%~i 的意思是将参数 i 去掉引号后显示出来

多个链接地址,举例说明吧,如果是不同行的,用这个代码可以实现,如果在同一行,有点难办,贴出你的例子

TOP

真的好敬佩上面的高手们。
看来我得要认认真真的学习一下批处理才行,特别是 for 语句 和 if 语句。

TOP

返回列表