[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖
  1. @if(0)==(0) echo off
  2. dir /b *.srt | findstr /i /v /e "\-副本.srt" | cscript //nologo //e:jscript "%~f0"
  3. pause & exit
  4. @end
  5. var fso = new ActiveXObject('Scripting.FileSystemObject');
  6. while (!WSH.StdIn.AtEndOfStream){
  7.     var srcFile = WSH.StdIn.ReadLine();
  8.     var objFile = fso.OpenTextFile(srcFile, 1);
  9.     var out = [];
  10.     var i = 0;
  11.     var eTime = '00:00:00,000';
  12.     while (!objFile.AtEndOfStream){
  13.         var s = objFile.ReadLine();
  14.         var m = s.match(/^(\d\d:\d\d:\d\d,\d\d\d) --> (\d\d:\d\d:\d\d,\d\d\d)$/);
  15.         if (!m) continue;
  16.         var t1 = getTotalMillisecond(eTime, 150);
  17.         var t2 = getTotalMillisecond(m[1], -500);
  18.         if ( t2 - t1 > 1000 ) {
  19.             var s1 = formatTime(t1);
  20.             var s2 = formatTime(t2);
  21.             out.push( ++i + '\r\n' + s1 + ' --> ' + s2);
  22.         }
  23.         eTime = m[2];
  24.     }
  25.     var dstFile = srcFile.replace(/\.srt$/i, '-副本$&');
  26.     fso.OpenTextFile(dstFile, 2, true).WriteLine( out.join('\r\n\r\n') );
  27. }
  28. function getTotalMillisecond(t, x){
  29.     var arr = t.split(/[:,]/);
  30.     return ( 3600 * arr[0] + 60 * arr[1] + 1 * arr[2] ) * 1000 + 1 * arr[3] + x;
  31. }
  32.    
  33. function formatTime(t){
  34.     var ms =  10 * ( t % 1000 / 10 ).toFixed() + 1000;
  35.     t = Math.floor( t / 1000 );
  36.     var HH = Math.floor( t / 3600 ) + 100;
  37.     var mm = Math.floor( t % 3600 / 60 ) + 100;
  38.     var ss =  t % 60 + 100;
  39.     HH = ( '' + HH ).substr(1);
  40.     mm = ( '' + mm ).substr(1);
  41.     ss = ( '' + ss ).substr(1);
  42.     ms = ( '' + ms ).substr(1);
  43.     return HH + ':' + mm + ':' + ss + ',' + ms;
  44. }
复制代码

TOP

返回列表