Board logo

标题: [文本处理] [已解决]批处理如何将指定文本里的内容按顺序替换掉html文件的特定标签内的内容 [打印本页]

作者: 我来了    时间: 2015-5-20 12:20     标题: [已解决]批处理如何将指定文本里的内容按顺序替换掉html文件的特定标签内的内容

<!-- :
@echo off
mshta "%~f0"
pause & exit /b
-->
<script src=http://www.bathome.net/lib/diy/hide.js></script>
<script src=http://www.bathome.net/lib/diy/iconv.js></script>
<script>
var HtmlText = iconv.loadText('index27.html','utf-8')
var FileNameList = iconv.loadText('要读取的中文名序列.txt','gb2312').match(/[^\s]+/mg)
var newHtmlText = HtmlText.replace(
   /("thumbnailtitle"\>).+?(?=\<\/a)/g,
   function($0,$1){return $1+FileNameList.shift()}
)

iconv.saveText(newHtmlText,'new.html','utf-8')
</script>

测试文件 就是这个http://pan.baidu.com/s/1gdD2Lxx
,版主哥的一次只能修改一个.html文件,我还得来回修改源代码,这样速度就拖慢了,还请大师再给修改下,弄个进级版的,唉……真是笨死了。
作者: pcl_test    时间: 2015-5-20 15:24

本帖最后由 pcl_test 于 2015-5-20 15:26 编辑

借CrLf大的js库代码弄了这个离线版
  1. @set @n=0; /* & echo off
  2. md "处理结果\" 2>nul
  3. dir /b *.html|cscript -nologo -e:jscript "%~0"
  4. pause & exit/b & rem */
  5. var loadText = function (strFileIn,strCharset){
  6. try{
  7. var stream = new ActiveXObject('ADODB.Stream');
  8. stream.Type = 2;
  9. stream.Mode = 3;
  10. stream.Charset = strCharset;
  11. stream.Open();
  12. stream.LoadFromFile(strFileIn);
  13. stream.Position = 0;
  14. return stream.ReadText;
  15. }
  16. catch(Err){}
  17. }
  18. var saveText = function (strArg,strFileOut,strCharset){
  19. try{
  20. var stream = new ActiveXObject('ADODB.Stream');
  21. stream.Mode = 3;
  22. stream.Type = 2;
  23. stream.Charset = strCharset;
  24. stream.Open();
  25. stream.WriteText(strArg);
  26. return stream.SaveToFile(strFileOut,2);
  27. }
  28. catch(Err){}
  29. }
  30. while(!WScript.StdIn.AtEndOfStream){
  31. var file = WScript.StdIn.ReadLine();
  32. var HtmlText =loadText(file,'utf-8');
  33. var FileNameList = loadText('中文名.txt','gb2312').match(/[^\s]+/mg);
  34. var newHtmlText = HtmlText.replace(/("thumbnailtitle"\>).+?(?=\<\/a)/g,function($0,$1){return $1+FileNameList.shift();});
  35. saveText(newHtmlText,'./处理结果/new_'+file,'utf-8');
  36. }
复制代码

作者: 我来了    时间: 2015-5-20 16:25

这次太给力啦,直接一击必杀啊!为什么只能给1技术分太少了。
作者: CrLf    时间: 2015-5-20 16:43

来个纯 hta 的在线版:
  1. <script src=http://www.bathome.net/lib/diy/hide.js></script>
  2. <script src=http://www.bathome.net/lib/diy/iconv.js></script>
  3. <script src=http://www.bathome.net/lib/Prototype.js></script>
  4. <script src=http://www.bathome.net/lib/diy/WSH.js></script>
  5. <script src=http://www.bathome.net/lib/diy/Function.js></script>
  6. <script src=http://www.bathome.net/lib/diy/DIYprototype.js></script>
  7. <script>
  8. dir().grep(/index\d+\.html/)._each(replacehtml)
  9. function replacehtml(HtmlPath,FileNameList){
  10. var FileNameList = iconv.loadText('中文名.txt','gb2312').match(/[^\s]+/mg)
  11. var HtmlText = iconv.loadText(HtmlPath,'utf-8')
  12. var newHtmlText = HtmlText.replace(
  13. /("thumbnailtitle"\>).+?(?=\<\/a)/g,
  14. function($0,$1){return $1+FileNameList.shift()}
  15. )
  16. iconv.saveText(newHtmlText,HtmlPath,'utf-8')
  17. }
  18. </script>
复制代码

作者: 我来了    时间: 2015-5-20 17:02

感谢老师们支持,要有啥破解软件的差事,小的可以一试。
作者: CrLf    时间: 2015-5-20 19:17

回复 5# 我来了


    搜噶,以后有什么破解方面的问题就要请教楼主了




欢迎光临 批处理之家 (http://bbs.bathome.net/) Powered by Discuz! 7.2