[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖
发一个js的  先粗暴处理32编码文件
  1. 1>1/* :
  2. @echo off
  3. set "ph=%cd%\Result\"
  4. set "enc=gb2312"
  5. md "%ph%" 2>nul
  6. dir /b /a-d *.txt *.jpg| cscript -nologo -e:jscript %0 "%ph%" "%enc%"
  7. pause & exit
  8. */
  9. var cp1252 = "\u20AC\u0081\u201A\u0192\u201E\u2026\u2020\u2021\u02C6\u2030\u0160\u2039\u0152\u008D\u017D\u008F\u0090\u2018\u2019\u201C\u201D\u2022\u2013\u2014\u02DC\u2122\u0161\u203A\u0153\u009D\u017E\u0178";
  10. var reg = /^(fffe00|00feff|efbbbf|fffe|feff)/i, re = /(?:^|\n)(PS\d*:.*)/g,
  11. charsets = { 'fffe00' : 'unicodefffe', '00feff' : 'unicodefeff', 'efbbbf' : "UTF-8",  'fffe' : 'unicodefffe', 'feff' : 'unicodefeff' };
  12. function getText(file, enc) {
  13.        var i = 0, stream, bin, count, content, hex='';
  14.        stream = new ActiveXObject("ADODB.Stream");
  15.        stream.type = 2;
  16.        stream.charset = 'Latin1';
  17.        stream.open();
  18.        stream.loadFromFile(file);
  19.        bin= stream.ReadText(-1);
  20.        count = (bin.length > 4096) ? 4096 : bin.length;
  21.        for (;i<4;) hex += bin.charCodeAt(i++).toString(16);
  22.        var bom = reg.test(hex) ? hex.match(reg)[0] : '';
  23.        stream.Position = 0;
  24.        stream.Type = 2;
  25.        stream.charset = bom ? charsets[bom] : getEncoding(bin, count) ? 'UTF-8' : 'gbk';
  26.        content = stream.readText(-1);
  27.        if (/00/.test(bom))
  28.        {
  29.             if (bom == '00feff') { content = content.slice(2) };
  30.             content = content.replace(/\x00/g, '');
  31.        }
  32.        stream.Close
  33.        return content
  34. }
  35. function getEncoding(b, len) {
  36.        var n = 1;
  37.        for ( var i = 0; i < len; i++)
  38.        {
  39.                var byt = (b.charCodeAt(i) <= 255) ? b.charCodeAt(i):
  40.                      128+cp1252.indexOf(b.charAt(i));
  41.                if (n == 1)
  42.                {
  43.                       if (byt >= 0x80)
  44.                       {
  45.                           while (((byt <<= 1) & 0x80) != 0) {n++}
  46.                           if (n == 1 || n > 6) { return false }
  47.                       }
  48.                } else {
  49.                    if ((byt & 0xC0) != 0x80) { return false}
  50.                    n--;
  51.                }
  52.        }
  53.        return true;
  54. }
  55. var enc = WScript.Arguments(1);
  56. while (!WScript.StdIn.AtEndOfStream){
  57.        var file = WScript.StdIn.ReadLine();
  58.        var text = getText( file ).replace(re, '');
  59.        var path = WScript.Arguments(0) + file;
  60.        var stream = new ActiveXObject("ADODB.Stream");
  61.        stream.type = 2;
  62.        stream.charset = enc;
  63.        stream.open();
  64.        stream.writetext(text);
  65.        stream.SaveToFile(path, 2);
  66.        stream.Close
  67. }
复制代码
1

评分人数

TOP

返回列表