标题: [文本处理] 批处理怎样读取html标题并输出到文本? [打印本页]
作者: ik22 时间: 2011-6-5 16:15 标题: 批处理怎样读取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
...............
先感谢了。!!!!
作者: CrLf 时间: 2011-6-5 16:24
- @echo off
- for /f "tokens=1* delims=:" %%a in ('findstr "<title>.*</title>" *.html') do (
- set "tmp=%%b"
- setlocal enabledelayedexpansion
- for /f "delims=<" %%c in ("!tmp:*<title>=!") do echo %%c %%~fa
- endlocal
- )
复制代码
作者: namejm 时间: 2011-6-5 17:45
2楼真大胆
原始数据都没看到就闷着头写代码了
作者: namejm 时间: 2011-6-5 18:13
给个比较特殊的标题:
<title>我是标题,我含有<字符</title>
2楼的代码趴下了吧,呵呵。
所以
我一般是不见兔子不撒鹰
不见原始数据绝不写代码
作者: plp626 时间: 2011-6-5 18:20
本来要更新的,我怎么把数据删了,
是,含有><的,for变量分割要注意;
==========================
问个sed替换的
echo <title>567<>890</title>|sed ???
怎么替换后显示为567890(代码尽量简洁)
作者: CrLf 时间: 2011-6-5 18:29
本来要更新的,我怎么把数据删了,
是,含有>
plp626 发表于 2011-6-5 18:20
哈哈,抓语病- echo "<title>567<>890</title>"|sed "s/[^0-9]//g"
复制代码
作者: CrLf 时间: 2011-6-5 18:32
来个正经的:- echo "<title>567<>890</title>"|sed "s/.*<title>\(.*\)<\/title>.*/\1/g;s/<>//g"
复制代码
作者: plp626 时间: 2011-6-5 18:32
6# zm900612
也太不通用了吧,那几个数字仅表示任意字符:
echo "<title>2345abcd@#$哈哈..??<>() { /\}嘿嘿</title>"|sed "???"
作者: ik22 时间: 2011-6-5 19:40
4# namejm
你好,哥们。
<title>***</title> *** 字符也不规定的。可能有数字,有文字,有英文等等的标题。所有文字/字符都有可能在标题里面出现。
作者: asnahu 时间: 2011-6-5 19:44
试试这个:- sed -n "/<title>/s/<[^>]*>//g; p"
复制代码
欢迎光临 批处理之家 (http://bbs.bathome.net/) |
Powered by Discuz! 7.2 |