首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Windows批处理脚本-用于一次执行一个命令

Windows批处理脚本-用于一次执行一个命令
EN

Stack Overflow用户
提问于 2013-12-16 06:43:02
回答 2查看 426关注 0票数 1

我创建了一个批处理脚本,以在子目录中找到.flv和.mp4文件,并在该子文件夹中创建一个同名的模板.srt文件。

问题是,我使用了一个FOR DO循环,它似乎将命令吐出的速度太快,不太可靠。

这是代码:

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

如果一切顺利..。对于./FILE1 1/FILE1.mp4,它将使./FILE1 1/FILE1.srt包含:

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

2
00:00:00,000 --> 00:00:00,000
FILE1

这样做,但只对前几个文件,然后进程似乎太快,我得到双倍和错误的标题,在错误的srt文件。

这似乎是做的(.)循环同时发出命令。我甚至尝试用PING命令减缓它的速度,甚至尝试GOTO命令将工作分解成几个步骤,但是没有运气。

如何让它一次执行一个命令,同时仍然能够使用%~nf创建和标记.srt文件?

任何帮助都是非常感谢的!

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-12-16 07:11:26

“可能”您在目录名和cd %~nf cd ..逻辑中的嵌套子目录或空格中遇到了一些问题。更改为cd "%~dpf"以更改文件所在的目录。或者更好的是,不要更改目录并在每个文件访问中使用完整的路径。

代码语言: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"
票数 2
EN

Stack Overflow用户

发布于 2013-12-16 08:01:30

这应该是可行的:

代码语言:javascript
复制
@echo off
for /F "delims==" %%f in ('dir /s /b /o:gn *.flv *.mp4') DO ( 
echo.1> "%%~dpnf.srt"
echo.00:00:00,500 --^> 00:00:03,500>> "%%~dpnf.srt"
echo.%%~nf>> "%%~dpnf.srt"
echo.>> "%%~dpnf.srt"
echo.2>> "%%~dpnf.srt"
echo.00:00:00,000 --^> 00:00:00,000>> "%%~dpnf.srt"
echo.%%~nf>> "%%~dpnf.srt"
)
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20604923

复制
相关文章

相似问题

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