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

[文本处理] 批处理如何检测srt每行字数,超出设定字数换行?

大佬们好,想批量检测多个srt文件每行的字数,超出30个字加空格或者换行

不检测时间码,只检测每一行的字数~

两个文件如下

链接:https://pan.baidu.com/s/1-xmRDW2-5L3JQB6YBOtsvg?pwd=0ydb

回复 2# Five66


    大佬,还在吗?再看一下吧,这样应该明确了

TOP

回复 3# czjt1234


    大佬,上午好

TOP

回复 6# Batcher


    大佬好,每个srt里面内容如下:只检测那一行文字,没有标点符号。检测文字字数。这是notpad打开的。



1
00:00:00,026 --> 00:00:00,852
批处理之家

2
00:00:00,952 --> 00:00:01,812
是个非常好的平台

3
00:00:01,912 --> 00:00:02,617
我爱批处理之家我爱批处理之家我爱批处理之家我爱批处理之家

TOP

回复 6# Batcher


    大佬,我把2个srt文件传网盘了,您抽时间给看下吧~

  就是把每一行文字比较长的根据设定的字数换行~
  1. 链接:https://pan.baidu.com/s/1-xmRDW2-5L3JQB6YBOtsvg?pwd=0ydb
  2. 提取码:0ydb
复制代码

TOP

回复 9# qixiaobin0715


    大哥好,生成的srt是空白的~ 哪里需要修改一下呢?

TOP

回复 6# Batcher


    大佬在吗?我这个srt的不好弄吗?

TOP

回复 12# Batcher


    UTF-8也是生成的空白文件。是因为srt文件格式吗

TOP

回复 14# buyiyang


    厉害了我的哥!技术专业!谢谢谢谢!

TOP

回复 15# Five66


    感谢大佬!谢谢

TOP

回复 16# 77七


大佬好,感谢您!还有一点小问题~

如果时间码超过字数的话 也会跟着换行。能否只检测文字,不检测数字时间码呢?

时间码格式:00:09:30,401 --> 00:09:30,971

TOP

回复 20# 77七


    成功了,大佬威武霸气!感谢您的专业帮助~祝您财源广进~一起顺利!!

TOP

回复 20# 77七


    大哥,这段代码改成覆盖原文件,应该怎样修改呢?我自己修改的操作完成空白文件了。求您指教~谢谢!
  1. @echo off
  2. rem 批处理保存为utf-8编码格式
  3. chcp 65001 >nul
  4. for /f "delims=" %%i in ('dir /b /a-d *.srt') do (
  5. (for /f "tokens=1* delims=[]" %%a in ('find /n /v "" ^<"%%i"') do (
  6. if "%%b" equ "" (
  7. echo=
  8. ) else (
  9. set "str=%%b"
  10. setlocal enabledelayedexpansion
  11. set "_str=!str:~0,1!"
  12. if !_str! gtr Z (
  13. call :1
  14. ) else (
  15. echo !str!
  16. )
  17. endlocal
  18. )
  19. ))>"%%~ni_2%%~xi"
  20. )
  21. pause & exit
  22. :1
  23. echo !str:~0,30!
  24. set "_str=!str:~30!"
  25. if "!_str!" neq "" (
  26. set "str=!_str!"
  27. goto :1
  28. ) else (
  29. exit /b
  30. )
复制代码

TOP

返回列表