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

Test.js
  1. var arg = WSH.Arguments;
  2. var fso = new ActiveXObject('Scripting.FileSystemObject');
  3. if (arg.length == 0 || fso.folderExists(arg(0)) || !/\.xml$/i.test(arg(0))){
  4.     WSH.Echo('拖入一个xml文件');
  5.     WSH.Quit();
  6. }
  7. var formatTime = function(t) {
  8.     var ms = ('' + (1000 + t % 1000)).substr(1);                 //毫秒
  9.     t = Math.floor(t/1000);                                      //总秒数
  10.     var hh = ('' + (100 + Math.floor(t / 3600))).substr(1);      //时
  11.     var mm = ('' + (100 + Math.floor(t % 3600 / 60))).substr(1); //分
  12.     var ss = ('' + (100 + t % 60)).substr(1);                    //秒
  13.     return hh + ':' + mm + ':' + ss + ',' + ms;
  14. }
  15. var arr = [];
  16. var xml = new ActiveXObject('Microsoft.XMLDOM');
  17. xml.load(arg(0));
  18. var nodes = xml.getElementsByTagName('dia');
  19. for(var i=0; i<nodes.length; i++) {
  20.     var st = nodes[i].selectSingleNode('st').text;        //开始时间
  21.     var et = nodes[i].selectSingleNode('et').text;        //结束时间
  22.     var t1 = formatTime(st) + ' --> ' + formatTime(et);   //时间格式化
  23.     var s1 = nodes[i].selectSingleNode('sub').text;       //字幕
  24.     arr.push(i + 1 + '\r\n' + t1 + '\r\n' + s1);
  25. }
  26. var dstFile = arg(0).replace(/xml$/i, 'srt');              //srt文件名
  27. fso.CreateTextFile(dstFile, true, true).WriteLine(arr.join('\r\n\r\n'));  //保存
复制代码

TOP

返回列表