找回密码
 注册
搜索
[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
查看: 29350|回复: 9

[文本处理] 如何用批处理替换HTML文件里指定的链接

[复制链接]
发表于 2017-1-17 10:51:48 | 显示全部楼层 |阅读模式
本帖最后由 batsoldier 于 2017-1-17 10:57 编辑

<div id="content">
<ul>  
<li><a href="http://News.7mj.com/tj.aspx?a=900&g=698421" target="_blank" class="edde37"> [新闻]公告</a></li>
<li><a href="http://News.7mj.com/tj.aspx?a=900&g=698421" target="_blank" class="edde37">[新闻]公告</a></li>
<li><a href="http://News.7mj.com/tj.aspx?a=900&g=698421" target="_blank" class="edde37">[新闻]公告</a></li>
<li><a href="http://News.7mj.com/tj.aspx?a=900&g=698421" target="_blank" class="edde37">[新闻]公告</a></li>
<li><a href="http://News.7mj.com/tj.aspx?a=900&g=698421" target="_blank">[活动]公告</a></li>
</ul>
</div>

</div>

<!--右边开始-->
<div id="right">

<div id="botton">
<div id="botton1"><a href="http://News.7mj.com/tj.aspx?a=900&g=698421" target="_blank"></a></div>
<div id="botton2"><a href="Cmdrun://News win.close" ></a></div>
</div>
</div>
</div>
</body>
</html>

将HTML文件里的链接http://News.7mj.com/tj.aspx?a=900&g=698421替换为http://sfz.netvideo.com/gb4/icons/player/goto/?apid=0&s=ZZg%2BdPaoCSBuXfnUez71iJN3Aco%3D&atid=0&cid=789&ctid=1092&pid=12&cnid=g
特别是替换的链接里有%号是否要用到转义。
发表于 2017-1-17 11:09:40 | 显示全部楼层
本帖最后由 523066680 于 2017-1-17 11:11 编辑

Perl,输出结果没有核对。
  1. open READ, "<:raw", "src.txt" or warn "$!";

  2. our $all;
  3. my $a = quotemeta('http://News.7mj.com/tj.aspx?a=900&g=698421');
  4. my $b = 'http://sfz.netvideo.com/gb4/icons/player/goto/?apid=0&'.
  5.         's=ZZg%2BdPaoCSBuXfnUez71iJN3Aco%3D&atid=0&cid=789&ctid'.
  6.         '=1092&pid=12&cnid=g';

  7. {
  8.     local $/ = undef;
  9.     $all = <READ>;
  10.     $all =~ s/$a/$b/gi;
  11. }

  12. close READ;

  13. open WRT, ">:raw", "dst.txt";
  14. print WRT $all;
  15. close WRT;
复制代码
  1. <div id="content">
  2. <ul>  
  3. <li><a href="http://sfz.netvideo.com/gb4/icons/player/goto/?apid=0&s=ZZg%2BdPaoCSBuXfnUez71iJN3Aco%3D&atid=0&cid=789&ctid=1092&pid=12&cnid=g" target="_blank" class="edde37"> [新闻]公告</a></li>
  4. <li><a href="http://sfz.netvideo.com/gb4/icons/player/goto/?apid=0&s=ZZg%2BdPaoCSBuXfnUez71iJN3Aco%3D&atid=0&cid=789&ctid=1092&pid=12&cnid=g" target="_blank" class="edde37">[新闻]公告</a></li>
  5. <li><a href="http://sfz.netvideo.com/gb4/icons/player/goto/?apid=0&s=ZZg%2BdPaoCSBuXfnUez71iJN3Aco%3D&atid=0&cid=789&ctid=1092&pid=12&cnid=g" target="_blank" class="edde37">[新闻]公告</a></li>
  6. <li><a href="http://sfz.netvideo.com/gb4/icons/player/goto/?apid=0&s=ZZg%2BdPaoCSBuXfnUez71iJN3Aco%3D&atid=0&cid=789&ctid=1092&pid=12&cnid=g" target="_blank" class="edde37">[新闻]公告</a></li>
  7. <li><a href="http://sfz.netvideo.com/gb4/icons/player/goto/?apid=0&s=ZZg%2BdPaoCSBuXfnUez71iJN3Aco%3D&atid=0&cid=789&ctid=1092&pid=12&cnid=g" target="_blank">[活动]公告</a></li>
  8. </ul>
  9. </div>

  10. </div>

  11. <!--右边开始-->
  12. <div id="right">

  13. <div id="botton">
  14. <div id="botton1"><a href="http://sfz.netvideo.com/gb4/icons/player/goto/?apid=0&s=ZZg%2BdPaoCSBuXfnUez71iJN3Aco%3D&atid=0&cid=789&ctid=1092&pid=12&cnid=g" target="_blank"></a></div>
  15. <div id="botton2"><a href="Cmdrun://News win.close" ></a></div>
  16. </div>
  17. </div>
  18. </div>
  19. </body>
  20. </html>
复制代码
 楼主| 发表于 2017-1-17 11:45:03 | 显示全部楼层
谢谢。

再请问下这个HTML文件要怎么指定文件名和路径,比如是修改在D:\1\index.html 文件里的这个链接。
发表于 2017-1-17 12:01:58 | 显示全部楼层
本帖最后由 523066680 于 2017-1-17 12:04 编辑

回复 3# batsoldier

读取文件的部分:
    open READ, "<:raw", "src.txt" or warn "$!";
改为
    open READ, "<:raw", 'D:\1\index.html' or warn "$!";

输出文件的部分:
    open WRT, ">:raw", "dst.txt";
改为
    open WRT, ">:raw", 'D:\1\index.html';

注意代码是 Perl 语言的,不是批处理。
sed 处理这个问题应该不错,楼主可以等待其他回答。
 楼主| 发表于 2017-1-17 13:50:32 | 显示全部楼层
非常感谢版主的解答,静等批处理解决方法。
 楼主| 发表于 2017-1-19 14:52:58 | 显示全部楼层
请教有没有批处理解决方法。
发表于 2017-1-21 19:00:04 | 显示全部楼层

你可以自己More或TYPE试试……换行都有问题……
发表于 2017-1-21 19:00:45 | 显示全部楼层

去搞个Sed吧
发表于 2017-1-22 19:49:59 | 显示全部楼层
  1. powershell "((gc 'test.html') -join "`r`n").replace('http://News.7mj.com/tj.aspx?a=900&g=698421','http://sfz.netvideo.com/gb4/icons/player/goto/?apid=0&s=ZZg%%2BdPaoCSBuXfnUez71iJN3Aco%%3D&atid=0&cid=789&ctid=1092&pid=12&cnid=g')"
  2. pause
复制代码
发表于 2017-1-22 22:02:04 | 显示全部楼层
继续歪楼
  1. mshta http://bathome.net/s/hta/index.html "type('test.html').replace(/http:\/\/News.7mj.com\/tj.aspx\?a=900\&g=698421/g,'http://sfz.netvideo.com/gb4/icons/player/goto/?apid=0&s=ZZg%%2BdPaoCSBuXfnUez71iJN3Aco%%3D&atid=0&cid=789&ctid=1092&pid=12&cnid=g')" | more
  2. pause
复制代码
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|批处理之家 ( 渝ICP备10000708号 )

GMT+8, 2026-3-17 14:27 , Processed in 0.010427 second(s), 8 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表