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


也给一个cmd+jscript混编版本,存为批处理脚本如 test.cmd 或 test.bat
预览结果的用法示例》test.cmd 1.xml (亦可将 1.xml 直接托给 test.cmd)
保存结果文件的用法示例》test.cmd 1.xml>1.srt
假设输入文件 1.xml 是简中编码,内容为一楼示例样本
  1. @set @v=1 /*
  2. @echo off
  3. if "%~1"=="" exit/b
  4. findstr /bi "<st> <et> <!" "%~1" | cscript /e:jscript "%~f0" & exit/b
  5. */
  6. k=0, n=0, ws=WSH.stdin;
  7. while (!ws.atendofstream) {
  8. n++; line=ws.readline();
  9. t=parseInt(line.replace(/[^\d]*(\d+)</, '$1'));
  10. if (n == 1) { st=mssToHMS(t); }
  11. else if (n == 2) { et=mssToHMS(t); WSH.echo(++k +'\n'+ st +' --> '+ et); }
  12. else { n=0; sub=line.replace(/[^ ]+\[ (.*) \].*/, '$1'); WSH.echo(sub+'\n'); }
  13. }
  14. // 毫秒格式化为 hh:mm:ss,nnn
  15. function mssToHMS (mss) {
  16. var h=parseInt((mss%86400000)/3600000);
  17. var m=parseInt((mss%3600000)/60000);
  18. var s=(mss%60000)/1000;
  19. h=h<10 ? '0'+h : h; //补零
  20. m=m<10 ? '0'+m : m; //补零
  21. s=s<10 ? '0'+s.toFixed(3) : s.toFixed(3); //补零
  22. return h +':'+ m +':'+ s.replace('.', ',');
  23. }
复制代码

TOP

回复 16# tianzi

我的测试环境是win8.1简中系统
代码存为批处理脚本文件 test.cmd
测试数据文件采用一楼提供的222行样本数据,存为1.xml,采用简中编码或记事本默认ANSI编码
命令行用法》test.cmd 1.xml 预览结果如下(共22行)
  1. 1
  2. 00:00:39,980 --> 00:00:40,950
  3. 瞎子
  4. 2
  5. 00:00:41,980 --> 00:00:43,990
  6. 贏了賭坊這麼多錢
  7. 3
  8. 00:00:44,350 --> 00:00:45,180
  9. 還不走啊
  10. 4
  11. 00:00:49,870 --> 00:00:51,690
  12. 我們來賭個大的如何
  13. 5
  14. 00:00:56,390 --> 00:01:00,270
  15. 贏了 桌上的錢翻倍
  16. 6
  17. 00:01:00,350 --> 00:01:04,510
  18. 輸了 得留下你這隻手
  19. 7
  20. 00:01:06,430 --> 00:01:07,830
  21. 左手還是右手
  22. 8
  23. 00:01:08,270 --> 00:01:09,710
  24. 這瞎子行不行啊
  25. 9
  26. 00:01:26,350 --> 00:01:29,430
  27. 瞎子 你輸了
  28. 10
  29. 00:01:39,670 --> 00:01:40,509
  30. 全是白的
  31. 11
  32. 00:01:40,509 --> 00:01:42,190
  33. 這麼多明眼人看著
  34. 12
  35. 00:01:42,580 --> 00:01:44,229
  36. 你們就欺負我這個瞎子
  37. 13
  38. 00:01:50,910 --> 00:01:53,229
  39. 在這裡我是莊家
  40. 14
  41. 00:01:53,509 --> 00:01:54,750
  42. 我說了算
  43. 15
  44. 00:01:55,910 --> 00:01:56,830
  45. 來人
  46. 16
  47. 00:50:40,870 --> 00:50:42,270
  48. 全城設伏
  49. 17
  50. 00:50:42,830 --> 00:50:43,750
  51. 另外
  52. 18
  53. 00:50:43,950 --> 00:50:45,990
  54. 琵琶女帶人跑不了多遠
  55. 19
  56. 00:50:46,430 --> 00:50:47,550
  57. 沿途追擊
  58. 20
  59. 00:50:50,350 --> 00:50:52,230
  60. 不惜一切代價
  61. 21
  62. 01:09:55,390 --> 01:09:57,710
  63. 那年與成瞎子相識
  64. 22
  65. 01:09:58,790 --> 01:10:00,110
  66. 我十九歲
复制代码

TOP

返回列表