我创建了一个批处理脚本,以在子目录中找到.flv和.mp4文件,并在该子文件夹中创建一个同名的模板.srt文件。
问题是,我使用了一个FOR DO循环,它似乎将命令吐出的速度太快,不太可靠。
这是代码:
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包含:
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文件?
任何帮助都是非常感谢的!
发布于 2013-12-16 07:11:26
“可能”您在目录名和cd %~nf cd ..逻辑中的嵌套子目录或空格中遇到了一些问题。更改为cd "%~dpf"以更改文件所在的目录。或者更好的是,不要更改目录并在每个文件访问中使用完整的路径。
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"发布于 2013-12-16 08:01:30
这应该是可行的:
@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"
)https://stackoverflow.com/questions/20604923
复制相似问题