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

[文本处理] 批处理怎样读取html标题并输出到文本?

哥们,大家好,先祝大家节日快乐!
下面是小弟想问的问题:
  D:\html\ 2011   目录下有很多个html网页文件   现在想写个批处理  把这个目录下的html标题读( <title>***</title> )取出来,并输出到a.txt文本里面,一行一个标题,然后标题后面就写出对应文件的真实路径。。。注:只要输出***的内容即可。不带<title>与</title>字符。。。

a.txt结果 大概如下格式:   

标题1      D:\html\ 2011\1.html
标题2      D:\html\ 2011\2.html
标题3      D:\html\ 2011\3.html
标题4      D:\html\ 2011\4.html
标题5      D:\html\ 2011\5.html
标题6      D:\html\ 2011\6.html
...............


先感谢了。!!!!
谦虚是持续成功的保证..
www.13168.org

  1. @echo off
  2. for /f "tokens=1* delims=:" %%a in ('findstr "<title>.*</title>" *.html') do (
  3.    set "tmp=%%b"
  4.    setlocal enabledelayedexpansion
  5.    for /f "delims=<" %%c in ("!tmp:*<title>=!") do echo %%c %%~fa
  6.    endlocal
  7. )
复制代码

TOP

2楼真大胆
原始数据都没看到就闷着头写代码了
尺有所短寸有所长,学好批处理没商量;
考虑问题复杂化,解决问题简洁化。

心在天山,身老沧州。

TOP

给个比较特殊的标题:
<title>我是标题,我含有<字符</title>

2楼的代码趴下了吧,呵呵。
所以
我一般是不见兔子不撒鹰
不见原始数据绝不写代码
尺有所短寸有所长,学好批处理没商量;
考虑问题复杂化,解决问题简洁化。

心在天山,身老沧州。

TOP

本来要更新的,我怎么把数据删了,
是,含有><的,for变量分割要注意;
==========================

问个sed替换的
echo <title>567<>890</title>|sed ???
怎么替换后显示为567890(代码尽量简洁)

TOP

本来要更新的,我怎么把数据删了,
是,含有>
plp626 发表于 2011-6-5 18:20


哈哈,抓语病
  1. echo "<title>567<>890</title>"|sed "s/[^0-9]//g"
复制代码

TOP

来个正经的:
  1. echo "<title>567<>890</title>"|sed "s/.*<title>\(.*\)<\/title>.*/\1/g;s/<>//g"
复制代码

TOP

6# zm900612


也太不通用了吧,那几个数字仅表示任意字符:
echo "<title>2345abcd@#$哈哈..??<>()  { /\}嘿嘿</title>"|sed "???"

TOP

4# namejm

你好,哥们。
<title>***</title>   *** 字符也不规定的。可能有数字,有文字,有英文等等的标题。所有文字/字符都有可能在标题里面出现。
谦虚是持续成功的保证..
www.13168.org

TOP

试试这个:
  1. sed -n "/<title>/s/<[^>]*>//g; p"
复制代码

TOP

返回列表