标题: [文本处理] 如何用批处理替换HTML文件里指定的链接 [打印本页]
作者: batsoldier 时间: 2017-1-17 10:51 标题: 如何用批处理替换HTML文件里指定的链接
本帖最后由 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
特别是替换的链接里有%号是否要用到转义。
作者: 523066680 时间: 2017-1-17 11:09
本帖最后由 523066680 于 2017-1-17 11:11 编辑
Perl,输出结果没有核对。- open READ, "<:raw", "src.txt" or warn "$!";
-
- our $all;
- my $a = quotemeta('http://News.7mj.com/tj.aspx?a=900&g=698421');
- my $b = 'http://sfz.netvideo.com/gb4/icons/player/goto/?apid=0&'.
- 's=ZZg%2BdPaoCSBuXfnUez71iJN3Aco%3D&atid=0&cid=789&ctid'.
- '=1092&pid=12&cnid=g';
-
- {
- local $/ = undef;
- $all = <READ>;
- $all =~ s/$a/$b/gi;
- }
-
- close READ;
-
- open WRT, ">:raw", "dst.txt";
- print WRT $all;
- close WRT;
复制代码
- <div id="content">
- <ul>
- <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>
- <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>
- <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>
- <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>
- <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>
- </ul>
- </div>
-
- </div>
-
- <!--右边开始-->
- <div id="right">
-
- <div id="botton">
- <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>
- <div id="botton2"><a href="Cmdrun://News win.close" ></a></div>
- </div>
- </div>
- </div>
- </body>
- </html>
复制代码
作者: batsoldier 时间: 2017-1-17 11:45
谢谢。
再请问下这个HTML文件要怎么指定文件名和路径,比如是修改在D:\1\index.html 文件里的这个链接。
作者: 523066680 时间: 2017-1-17 12:01
本帖最后由 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 处理这个问题应该不错,楼主可以等待其他回答。
作者: batsoldier 时间: 2017-1-17 13:50
非常感谢版主的解答,静等批处理解决方法。
作者: batsoldier 时间: 2017-1-19 14:52
请教有没有批处理解决方法。
作者: 老刘1号 时间: 2017-1-21 19:00
你可以自己More或TYPE试试……换行都有问题……
作者: 老刘1号 时间: 2017-1-21 19:00
去搞个Sed吧
作者: pcl_test 时间: 2017-1-22 19:49
- 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')"
- pause
复制代码
作者: CrLf 时间: 2017-1-22 22:02
继续歪楼- 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
- pause
复制代码
欢迎光临 批处理之家 (http://www.bathome.net/) |
Powered by Discuz! 7.2 |