|
|
发表于 2023-4-20 09:37:09
|
显示全部楼层
本帖最后由 qixiaobin0715 于 2023-4-20 14:28 编辑
回复 1# lmq123
newswan看的很细致,这个都能发现。
现在有很多人,你写了代码来帮助他解决问题,代码是否有问题也不说一声,闷着。唉!
2楼代码写的匆忙,问题不止一个,比如变量延迟未开,newswan所说的编号非纯数字,有的后面带点号等等,如果还是按照2楼的思路,并且楼主的文件不再有别的意外出现,这样应当可以:
表示时间的文件为times.srt
表示对话的文件为demo.srt- @echo off
- chcp 65001>nul
- findstr . times.srt>temp2
- findstr . demo.srt>temp1
- setlocal enabledelayedexpansion
- (for /f "delims=" %%i in (temp1) do (
- set /p str=
- set m=%%i
- set /a n=m
- if "!n!"=="%%i" (
- echo,!n!
- ) else if "!n!."=="%%i" (
- echo,!n!
- ) else (
- echo,!str!
- echo,%%i
- echo,
- )
- ))<temp2>Merge.srt
- del /f temp1 temp2
- pause
复制代码 注意:代码中用了两个临时文件,内容临时文件temp1一定要放在for循环in后的括号里,而时间临时文件temp2放在“<”后,因为这种方法不适合“代码页编号为65001”时,读取编码为UTF-8含有双字节字符的文本。 |
评分
-
查看全部评分
|