[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖
  1. @echo off
  2. chcp 65001>nul
  3. for /f "delims=" %%i in ('dir /b /a-d *.srt') do (
  4.     (for /f "delims=" %%j in ('type "%%i") do (
  5.         set "str=%%j"
  6.         setlocal enabledelayedexpansion
  7.         if not "!str:~30!"=="" (
  8.             echo,!str:~,30!
  9.             echo,!str:~30!
  10.         ) else (
  11.             echo,%%j
  12.         )
  13.         endlocal
  14.     ))>"New-%%i"
  15. )
复制代码

TOP

本帖最后由 qixiaobin0715 于 2023-11-4 08:22 编辑

感谢14楼指出代码错误。下面代码最多可进行2次换行,即适合一行不超过90个字符,原字幕文件空行保留:
  1. @echo off
  2. chcp 65001>nul
  3. for /f "delims=" %%i in ('dir /b /a-d *.srt') do (
  4.     (for /f "delims=" %%j in ('type "%%i"') do (
  5.         set "str=%%j"
  6.         setlocal enabledelayedexpansion
  7.         set /a t=str
  8.         if !t! equ !str! (
  9.             echo,%%j
  10.         ) else if not "!str:-->=!"=="!str!" (
  11.             echo,%%j
  12.         ) else (
  13.             if not "!str:~30!"=="" (
  14.                 echo,!str:~,30!
  15.                 set str=!str:~30!
  16.                 if not "!str:~30!"=="" (
  17.                     echo,!str:~,30!
  18.                     echo,!str:~30!
  19.                     echo,
  20.                 ) else (
  21.                     echo,!str!
  22.                     echo,
  23.                 )
  24.             ) else (
  25.                 echo,%%j
  26.                 echo,
  27.             )
  28.         )
  29.         endlocal
  30.     ))>"New-%%i"
  31. )
复制代码

TOP

返回列表