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

最后结果正确不
我这里测 是可行的 (XP 和 WIN7)
  1. @if(0)==(0) echo off
  2. for %%a in (*.htm) do CScript.exe //NoLogo //E:JScript "%~f0" "%%a">%%~na.txt
  3. pause & exit
  4. @end
  5. function WriteCenterLogs(a,b,c,d,e,f,g,h,i) {WScript.Echo(a + '\t' + b + '\t' + c + '\t' + d + '\t' + e+ '\t' + g)}
  6. function adoLoadText(filename, charset) {
  7.     var stream, text;
  8.     stream = new ActiveXObject("ADODB.Stream");
  9.     stream.type = 2;
  10.     stream.charset = charset;
  11.     stream.open();
  12.     stream.loadFromFile(filename);
  13.     text = stream.readText(-1);
  14.     stream.close();
  15.     return text;
  16. }
  17.     var file = WScript.Arguments.Item(0);
  18.     var next = adoLoadText(file ,'UTF-8');
  19.     var html = new ActiveXObject("htmlfile");
  20.     html.write(next);
  21.     var d = html.getElementsByTagName("dd");
  22.     var len = d.length;
  23.     for (var i = 0; i < len; i++) {
  24.        var s = d[i].getElementsByTagName("div");
  25.        s = s[0].getElementsByTagName('a')[0].onclick;
  26.        s();
  27.     }
复制代码
废了对象 还是直接正则获取 这样试下
发现正则有点问题
  1. @if(0)==(0) echo off
  2. dir /b *.htm | CScript.exe //NoLogo //E:JScript "%~f0"
  3. pause & exit
  4. @end
  5. function adoLoadText(filename, charset) {
  6.     var stream, text;
  7.     stream = new ActiveXObject("ADODB.Stream");
  8.     stream.type = 2;
  9.     stream.charset = charset;
  10.     stream.open();
  11.     stream.loadFromFile(filename);
  12.     text = stream.readText();
  13.     stream.close();
  14.     return text;
  15. }
  16. var fso = new ActiveXObject("Scripting.FileSystemObject");
  17. var re = new RegExp('<dd>[^(]+\\((.+)\\);\" target=','img')
  18. while (!WScript.StdIn.AtEndOfStream){
  19.     var file = WScript.StdIn.Readline();
  20.     var name = file.replace(/(.+?)(\.[^\.]*?)$/gi,'$1.txt');
  21.     var next = adoLoadText(file ,'UTF-8');
  22.     var arr = getarr(next);
  23.     fso.CreateTextFile(name, true).Write(arr.join('\r\n'))
  24. }
  25. function getarr(next) {
  26.     var f = next.match(re),arr = [];
  27.     if (f){
  28.       var len = f.length;
  29.       for (var i = 0; i < len; i++){
  30.         var str = f[i];
  31.         str = str.replace(re,'$1');
  32.         var tar = str.replace(/^'|'$/g,'').replace(/\t/g,' ').split(/','/);
  33.         tar.splice(5, 1)
  34.         arr[i] = tar.join('\t')
  35.       }
  36.       return arr;
  37.     }
  38. }
复制代码
1

评分人数

TOP

回复 7# tbjx138
上面代码 试下

TOP

返回列表