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

[文本处理] 这种文本如何用批处理转换

00:00:00.160
00:00:03.400
今天我分享一道我做错的死活题

00:00:04.280
00:00:05.800
我看到题目的时候呢

00:00:06.120
00:00:08.600
我的第一感就是黑棋这样挖

===> 转换成这样的结果

1
00:00:00.160 --> 0:00:03.400
今天我分享一道我做错的死活题

2
00:00:04.280 --> 0:00:05.800
我看到题目的时候呢

3
00:00:06.120 --> 00:00:08.600
我的第一感就是黑棋这样挖

回复 1# netdzb

前面的正则可以这样写吗?

^[0-9][0-9]\:[0-9][0-9]\:[0-9][0-9]\.[0-9][0-9][0-9]
感觉写的挺啰嗦的啊

TOP

  1. (^[\d:\.]+)\s+(^[\d:\.]+)
复制代码
替换为
  1. $1 $2
复制代码
#&cls&@powershell "Invoke-Expression ([Io.File]::ReadAllText('%~0',[Text.Encoding]::UTF8))" &pause&exit

TOP

回复 3# ivor

\s+表示什么意思啊?

TOP

本帖最后由 wxyz0001 于 2021-5-5 13:47 编辑
  1. $srt=Get-Content .\字幕a.txt
  2. $srt|ForEach-Object{
  3. #转换序号
  4. $j=$_.ReadCount/4
  5. #每次处理4行
  6. if(($_.ReadCount+4)%4 -eq 0){
  7. #格式化4行
  8. "{0}`n{1} --> {2}`n{3}`n" -f $j ,$srt[$_.ReadCount -4],$srt[$_.ReadCount -3],$srt[$_.ReadCount -2]
  9. }
  10. }|Set-Content .\字幕b.txt
复制代码

TOP

他干啥了。被禁止发言了?
QQ:1972544783

TOP

回复 6# Gin_Q
他只是没来吧,可能他问题已经解决了

TOP

回复 6# Gin_Q


    被误会了呗。还在360问答发 被版主误会了怎么办?

TOP

翻翻这位仁兄的历史贴就知道了,
标题大多数都是违规的;
几乎没有一个帖子是"已解决"的;
几乎没有一句对给予他帮助的人表示谢意的;
对回复者最起码的尊重都没有;
大有一副"姜太公钓鱼愿者上钩"的味道。
2

评分人数

TOP

回复 5# wxyz0001
Python代码
  1. with open('E:\\news\\字幕.txt', 'r', encoding='gbk') as f:
  2.     file = f.readlines()
  3.     str_ = ""
  4.     for i in range(0, len(file), 4):
  5.         str_ += '{0}\n{1} --> {2}{3}\n'.format(str(int((i + 4) / 4)), file[i].strip('\n'), file[i+1], file[i+2])
  6.     with open('E:\\news\\字幕b.txt', 'w', encoding='gbk') as ff:
  7.         ff.write(str_)
复制代码

TOP

回复 9# WHY

我知道我有的地方做的不够好,我会慢慢改掉的。
请论坛能够接纳我,也能在这个平台和大家交流吧。

TOP

回复 10# wxyz0001

我很久没有写python代码,我去研究一下代码。
谢谢你。

TOP

回复 6# Gin_Q

我回归论坛了,很高兴和大家交流。

TOP

回复 12# netdzb
那么,平时你都是写什么呢

TOP

  1. @echo off
  2. set /a n=0,x=1
  3. setlocal enabledelayedexpansion
  4. for /f "delims=" %%a in ('findstr /n .* test.txt') do (
  5.     set "str=%%a"
  6.     set "str=!str:*:=!"
  7.     set /a n+=1
  8.     set /a "m=(n-1)%%4+1"
  9.     if !m!==1 (
  10.         echo,!x!
  11.         set /a x+=1
  12.         set "var=!str!"
  13.     ) else if !m!==2 (
  14.         echo,!var!--^>!str!
  15.     ) else (
  16.         echo,!str!
  17.     )
  18. )
  19. pause
复制代码

TOP

返回列表