本帖最后由 WHY 于 2023-12-18 23:26 编辑
Test.js- var arg = WSH.Arguments;
- var fso = new ActiveXObject('Scripting.FileSystemObject');
-
- if (arg.length == 0 || fso.folderExists(arg(0)) || !/\.xml$/i.test(arg(0))){
- WSH.Echo('拖入一个xml文件');
- WSH.Quit();
- }
-
- var formatTime = function(t) {
- var ms = ('' + (1000 + t % 1000)).substr(1); //毫秒
- t = Math.floor(t/1000); //总秒数
- var hh = ('' + (100 + Math.floor(t / 3600))).substr(1); //时
- var mm = ('' + (100 + Math.floor(t % 3600 / 60))).substr(1); //分
- var ss = ('' + (100 + t % 60)).substr(1); //秒
- return hh + ':' + mm + ':' + ss + ',' + ms;
- }
-
- var arr = [];
- var xml = new ActiveXObject('Microsoft.XMLDOM');
- xml.load(arg(0));
- var nodes = xml.getElementsByTagName('dia');
-
- for(var i=0; i<nodes.length; i++) {
- var st = nodes[i].selectSingleNode('st').text; //开始时间
- var et = nodes[i].selectSingleNode('et').text; //结束时间
- var t1 = formatTime(st) + ' --> ' + formatTime(et); //时间格式化
- var s1 = nodes[i].selectSingleNode('sub').text; //字幕
- arr.push(i + 1 + '\r\n' + t1 + '\r\n' + s1);
- }
-
- var dstFile = arg(0).replace(/xml$/i, 'srt'); //srt文件名
- fso.CreateTextFile(dstFile, true, true).WriteLine(arr.join('\r\n\r\n')); //保存
复制代码
|