Board logo

标题: 已解决 求助,如何用批处理将文本的格式做如下变化 [打印本页]

作者: kaikai163     时间: 2008-11-8 17:58    标题: 已解决 求助,如何用批处理将文本的格式做如下变化

有两个文档

第一个如下:
[00:22.36]片名:百万英镑  
[01:16.16]Once upon a time when Britain was very rich 曾经有段时间英国非常富有  
[01:19.48]deep in the box of bank in England 在英格兰银行巨大的保管库里  
[01:21.48]there was more gold than anywhere in the world 所储存的黄金 比其他任何地方都多

第二个:
00:22.36 --> 01:16.16 片名:百万英镑
01:16.16 --> 01:19.48        Once upon a time when Britain was very rich 曾经有段时间英国非常富有  


第二个文档的箭头后边的数字是第二行的数字


请问如何转换,

小弟新手,请各位大侠,不吝赐教!已解决

[ Last edited by kaikai163 on 2008-11-8 at 23:12 ]
作者: tireless     时间: 2008-11-8 18:13


  Quote:
第二个文档的箭头后边的数字是第二行的数字

什么意思?
作者: pusofalse     时间: 2008-11-8 18:39

@echo off & setlocal enabledelayedexpansion
for /f "tokens=1* delims=[]" %%a in (a.txt) do (
      set /a n+=1,m=n-1
      set ".!n!=%%a" & set "_!n!=%%b"
      if !n! gtr 1 call :loop "%%a"
)

pause>nul & exit /b

:loop
echo !.%m%! --^> %~1 !_%m%!
另,楼主没有说明白最后一行该如何显示。。。
作者: slore     时间: 2008-11-8 18:42
字幕文件处理……
作者: kaikai163     时间: 2008-11-8 22:23
4楼的是内行啊!就是这个要求!

不过我现在找到了一个软件,可以转换也就是lrc转换成srt不过里边有不少空行

如下显示

4
00:01:19,489 --> 00:01:21,480
deep in the box of bank in England 在英格兰银行巨大的保管库里

5
00:01:21,489 --> 00:01:27,160
there was more gold than anywhere in the world 所储存的黄金 比其他任何地方都多

6
00:01:27,169 --> 00:01:27,720
safe the banks of England. 那时有信誉的人常说


该如何将数字与空行去掉,并且字幕与时间放到一行上去呢??

还是请各位高手不吝赐教!
作者: kaikai163     时间: 2008-11-8 22:27
晕,一不留神给二楼加分了,本来想给三楼大哥加的!
作者: HAT     时间: 2008-11-8 22:32    标题: Re 5楼


@echo off
setlocal enabledelayedexpansion
type nul>result.txt
set m=2
for /f "tokens=*" %%i in ('findstr /v "^[0-9]*$" a.txt') do (
  set /a hangn+=1
  set /a n+=1
  set line=!line! %%i
  if !n! equ !m! (
    echo.!line:~1!>>result.txt
    set line=
    set /a n=0
  )
)
set /a t=!hangn!%%!m!
if !t! equ 0 goto end
echo.!line!>>result.txt
:end

作者: kaikai163     时间: 2008-11-8 22:59
版主直接是神仙,我太崇拜你了!

不过还有一点小小的要求

00:02:21,169 --> 00:02:23,120        A bet 是为了打赌

00:02:23,129 --> 00:02:26,240 打赌你是说打赌


版主能看出第一行  “A bet 是为了打赌”   前面那个空格为什么那么宽呢?

然后请修改一下您的批处理,使第二行前面加一个这样的空格。

麻烦你了!
作者: HAT     时间: 2008-11-8 23:02    标题: Re 8楼

你自己把7楼代码中:
set line=!line! %%i
!line!和%%i中间的空格换成制表符tab试试
作者: kaikai163     时间: 2008-11-8 23:03


  Quote:
Originally posted by HAT at 2008-11-8 11:02 PM:
你自己把7楼代码中:
set line=!line! %%i
!line!和%%i中间的空格换成制表符tab试试

好的我试试!
作者: kaikai163     时间: 2008-11-8 23:11
成功,感谢hat版主!