[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖
  1. @set @n=0/*& echo off
  2. set "folder=d:\总文件夹"
  3. copy /y xxx.gs xxx.gs.bak
  4. cscript.exe -e:jscript "%~f0" "%folder%" || (pause&exit/b)
  5. echo grads -blc "%folder%\xxx.gs"
  6. rem do something you like.
  7. exit/b
  8. */
  9. folder = WScript.Arguments(0);
  10. file = folder + "\\xxx.gs";
  11. strQuery = "select name from CIM_DataFile where "
  12.     + " drive='" + folder.substr(0,2) + "' and "
  13.     + " path like '" + folder.substr(2).replace(/\\/g,'\\\\') + "\\\\%'"
  14.     + " and extension='ctl'";
  15. wmi = new ActiveXObject("WbemScripting.SWbemLocator").ConnectServer();
  16. colFiles = wmi.ExecQuery(strQuery, "WQL", 48);
  17. e = new Enumerator(colFiles);
  18. arrFiles = [];
  19. for (; !e.atEnd(); e.moveNext())  arrFiles.push(e.item().name);
  20. txt = readtext(file);
  21. i = 0;
  22. txt = txt.replace(/^'open ([^']+)|^while\(i<=(\d+)\)/gm,
  23.   function(s0,s1,s2){
  24.     if (s1) return s0.replace(s1, arrFiles[i]);
  25.     else return s0.replace(s2,
  26.         readtext(arrFiles[i++]).match(/^tdef (\d+) linear/m)[1]);
  27.   });
  28. writetext(file, txt);
  29. function readtext(file, charset)
  30. {
  31.     var text;
  32.     var aso = new ActiveXObject('ADODB.Stream');
  33.     aso.Mode = 3;
  34.     aso.Type = 2;
  35.     if (charset) aso.Charset = charset;
  36.     else aso.Charset = 'gbk';
  37.     aso.Open();
  38.     aso.LoadFromFile(file);
  39.     text = aso.ReadText(-1);
  40.     aso.Close();
  41.     aso = null;
  42.     return text;
  43. }
  44. function writetext(file, text, charset)
  45. {
  46.     var aso = new ActiveXObject('ADODB.Stream');
  47.     aso.Mode = 3;
  48.     aso.Type = 2;
  49.     if (charset) aso.Charset = charset;
  50.     else aso.Charset = 'gbk';
  51.     aso.Open();
  52.     aso.WriteText(text);
  53.     aso.SaveToFile(file, 2);
  54.     aso.Close();
  55.     aso = null;
  56. }
复制代码
继续将JavaScript发扬光大。
1

评分人数

    • cpp: 感谢帮助技术 + 1

TOP

回复 7# cpp


    将3楼的代码整个保存为一个bat文件运行即可(将有关路径按实际情况修改)。这是bat+js二合一。

TOP

楼主比较幸运,代码中有“while(i<=6)”,但没有“if(!x)”之类(看到前面这种形式很容易联想到后者)。如果有感叹号!,用那些bat文件处理后可能导致很严重的后果。

TOP

返回列表