中国DOS联盟论坛

中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --

联盟域名:www.cn-dos.net  论坛域名:www.cn-dos.net/forum
DOS,代表着自由开放与发展,我们努力起来,学习FreeDOS和Linux的自由开放与GNU精神,共同创造和发展美好的自由与GNU GPL世界吧!

游客:  注册 | 登录 | 命令行 | 会员 | 搜索 | 上传 | 帮助 »
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » 已解决 求助,如何用批处理将文本的格式做如下变化
作者:
标题: 已解决 求助,如何用批处理将文本的格式做如下变化 上一主题 | 下一主题
kaikai163
初级用户





积分 107
发帖 60
注册 2007-11-7
状态 离线
『楼 主』:  已解决 求助,如何用批处理将文本的格式做如下变化

有两个文档

第一个如下:
[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 ]

2008-11-8 17:58
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
tireless
银牌会员





积分 2025
发帖 1122
注册 2007-9-5
状态 离线
『第 2 楼』:  



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

什么意思?

   此帖被 +1 点积分    点击查看详情   
评分人:【 kaikai163 分数: +1  时间:2008-11-8 22:24


2008-11-8 18:13
查看资料  发短消息 网志   编辑帖子  回复  引用回复
pusofalse
银牌会员




积分 1604
发帖 646
注册 2008-4-13
状态 离线
『第 3 楼』:  


@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%!
另,楼主没有说明白最后一行该如何显示。。。

   此帖被 +2 点积分    点击查看详情   
评分人:【 kaikai163 分数: +2  时间:2008-11-8 22:25




心绪平和,眼藏静谧,无比安稳的火... Purification of soul...Just a false...^_^
2008-11-8 18:39
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
slore
铂金会员





积分 5212
发帖 2478
注册 2007-2-8
状态 离线
『第 4 楼』:  

字幕文件处理……



S smile 微笑,L love 爱,O optimism 乐观,R relax 放松,E enthusiasm 热情...Slore
2008-11-8 18:42
查看资料  发短消息 网志   编辑帖子  回复  引用回复
kaikai163
初级用户





积分 107
发帖 60
注册 2007-11-7
状态 离线
『第 5 楼』:  

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. 那时有信誉的人常说


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

还是请各位高手不吝赐教!

2008-11-8 22:23
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
kaikai163
初级用户





积分 107
发帖 60
注册 2007-11-7
状态 离线
『第 6 楼』:  

晕,一不留神给二楼加分了,本来想给三楼大哥加的!

2008-11-8 22:27
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
HAT
版主





积分 9023
发帖 5017
注册 2007-5-31
状态 离线
『第 7 楼』:  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




2008-11-8 22:32
查看资料  发短消息 网志   编辑帖子  回复  引用回复
kaikai163
初级用户





积分 107
发帖 60
注册 2007-11-7
状态 离线
『第 8 楼』:  

版主直接是神仙,我太崇拜你了!

不过还有一点小小的要求

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

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


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

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

麻烦你了!

2008-11-8 22:59
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
HAT
版主





积分 9023
发帖 5017
注册 2007-5-31
状态 离线
『第 9 楼』:  Re 8楼

你自己把7楼代码中:
set line=!line! %%i
!line!和%%i中间的空格换成制表符tab试试

   此帖被 +2 点积分    点击查看详情   
评分人:【 kaikai163 分数: +2  时间:2008-11-8 23:10




2008-11-8 23:02
查看资料  发短消息 网志   编辑帖子  回复  引用回复
kaikai163
初级用户





积分 107
发帖 60
注册 2007-11-7
状态 离线
『第 10 楼』:  



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

好的我试试!

2008-11-8 23:03
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
kaikai163
初级用户





积分 107
发帖 60
注册 2007-11-7
状态 离线
『第 11 楼』:  

成功,感谢hat版主!

2008-11-8 23:11
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复

请注意:您目前尚未注册或登录,请您注册登录以使用论坛的各项功能,例如发表和回复帖子等。


可打印版本 | 推荐给朋友 | 订阅主题 | 收藏主题



论坛跳转: