首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >批处理脚本-从文本文件中提取值

批处理脚本-从文本文件中提取值
EN

Stack Overflow用户
提问于 2013-12-17 02:59:48
回答 1查看 276关注 0票数 0

我有一个包含数千个子文件夹的文件夹,每个文件夹包含一个视频文件和一个字幕文件,如下所示:

每个文本文件(.srt)都是字幕文件,用于在每个视频的开头和结尾显示文件名(没有扩展名)。例如,跟踪双轨Two.srt的内容如下:

代码语言:javascript
复制
1
00:00:00,500 --> 00:00:03,500
Track Two - Track Two

2
00:00:00,000 --> 00:00:00,000
Track Two - Track Two

感谢一些严肃的StackHeads,通过在./media/父目录中运行以下批处理脚本,我能够自动创建文本文件:

代码语言:javascript
复制
for /R %%f in (*.flv *.mp4) do (
echo(1
echo(00:00:00,500 --^> 00:00:03,500
echo(%%~nf
echo(
echo(2
echo(00:00:00,000 --^> 00:00:00,000
echo(%%~nf
) > "%%~dpnf.srt"

现在,我所要做的就是更新每个.srt文件的第6行,使其在视频结束前显示文件名3秒。理想情况下,第一个数值是视频结束之前的3.5秒,第二个数值是结束前的.5秒。为了使它更难,它必须在俄罗斯时间码.srt文件中使用。

例如,如果双轨2的长度为01:36,则双轨Two.srt的第6行应为:

代码语言:javascript
复制
00:01:32,500 --> 00:01:35,500

我可以生成所有视频长度的文本列表,如下所示:

..and只要我保持文件夹名严格编号,它们每次都会排队。

是否有任何方法从文本文件times.txt中提取视频长度(假设顺序是完美的),并以俄文timecode格式更新每个.srt文件的第6行,使其在其引用的视频文件结束前显示标题?

任何帮助都是非常感谢的!!还有..。再次感谢dbenham,MC ND,payeli之前的帮助!!你是最棒的!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-12-17 08:07:57

代码语言:javascript
复制
@ECHO OFF
SETLOCAL
SETLOCAL ENABLEDELAYEDEXPANSION
FOR /f "skip=1tokens=2,3,11delims=," %%a IN (list.csv) DO (
 SET ttrack=%%a
 SET videoname=%%~nb
 set to_file="%%c\%%~nb.srt"
 CALL :process
)
GOTO :EOF
:process
FOR /f "tokens=1-3delims=:" %%r IN ("%ttrack%") DO (
 SET /a hr=10%%r
 SET /a mi=1%%s
 SET /a se=1%%t
)
CALL :subs 1
SET endtime=%hr:~-2%:%mi:~-2%:%se:~-2%,500
CALL :subs 3
SET starttime=%hr:~-2%:%mi:~-2%:%se:~-2%,500

echo(1
echo(00:00:00,500 --^> 00:00:03,500
echo(!videoname!
echo(
echo(2
echo(%starttime% --^> %endtime%
echo(!videoname!
ECHO(sent to %to_file%
GOTO :eof
::
:: subtract %1 seconds from hr,mi,se
::
:subs
SET /a se-=%1
IF %se% geq 100 GOTO :EOF
SET /a se+=60
SET /a mi-=1
IF %mi% geq 100 GOTO :EOF
SET /a mi+=60
SET /a hr-=1
GOTO :eof

不是很难。

如果这看起来合适的话你需要做的就是改变

代码语言:javascript
复制
echo(1
...
echo(%videoname%
ECHO(sent to %to_file%

代码语言:javascript
复制
(
echo(1
...
echo(%videoname%
)>%to_file%
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20625099

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档