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

[文件操作] [已解决]批处理怎样根据网页文件<title>间的标题重命名文件?

我有许多以数字开头的htm文件,如35003.htm,网页的内容是一些文章,是有标题的,如“如何保养电脑与维护”等,
但是网页文件的数字标题对我找寻相关文章很不利,后来我发现在htm文件的源码里,文章的题目都在<title></title>之间,我现在想提取<title></title>之间的文章名并以此重命名该文件,不知代码该怎么写
备注:其实我自己尝试写过,但提取的都带<title></title>,我不想要,但是自己造诣不深搞不定,求高手。注意:我有很多很多这样的文件,希望代码有通用性,谢谢
1

评分人数

    • Batcher: 感谢给帖子标题标注[已解决]字样PB + 2

这是我写的代码,
  1. @echo off
  2. findstr "<title>" "*.htm" >list.txt
  3. for /f "delims=: tokens=1,2" %%a (list.txt) do (
  4. ren F:\test\%%a %%b)
  5. pause
复制代码
这是网页文件,用记事本打开看源码就找到<title></title>间的文章名了,我换了个文件,形式是一样的,内容不一样,
备注:有的文章名有空格或是特殊字符

TOP

本帖最后由 huzhiqiang91 于 2013-7-11 17:03 编辑

问题解决了,谢谢terse ,不过我有一个问题
  1. for /f "tokens=1,3 delims=:<>" %%a in ('findstr /i "<title>.*</title>" *.%ext%') do ren "%%a" "%%b.%ext%
复制代码
上面这段代码为什么把
  1. 'findstr /i "<title>.*</title>" *.%ext%
复制代码
的结果:
  1. 33428.htm:<title>windows IE浏览器精典技巧两则_WindowsXP_脚本之家</title>
复制代码
分成了4段,而不是五段,难道33428.htm:<title>冒号和"<"之间无字符段就不算吗,换句话说,是不是在两个分隔符之间无字符是不是就不分割呢、

TOP

刚才又大规模试了一下,发现有特殊字符的不行,不过已经解决很大问题了,我觉得在处理前把含有的特殊字符找出来,替换掉应该可以,自己试试吧,再次感谢

TOP

返回列表