在批处理文件中手动制动后删除输入文件

时间:2015-01-29 18:23:56

标签: batch-file handbrake

我为HandBrakeCLI编写了这个代码作为批处理文件来操纵我的视频。此代码创建输入文件名称加上“_conv”后缀的输出文件。

for /R .\test %%F in (*.mov) do HandBrakeCLI -e x264 --x264-preset medium -q 35 --crop 0:0:0:0 --aencoder copy -i "%%~fF" -o "%%~pF%%~nF_conv.mp4

然后我想删除原始文件,然后删除输出文件的_conv部分。应该在上面的代码中添加什么?

我希望在转换后立即删除每个文件,或者至少在从包含的文件夹转到另一个文件夹时删除它,而不是在转换所有文件之后(因为必须转换大量文件并且我可能会用完空间) )

顺便说一句,如何在代码中添加* .mov之外的其他格式?

1 个答案:

答案 0 :(得分:2)

for /R .\test %%F in (*.mov) do (
    HandBrakeCLI -e x264 --x264-preset medium -q 35 --crop 0:0:0:0 --aencoder copy -i "%%~fF" -o "%%~dpF%%~nF_conv.mp4"
    if exist "%%~dpF%%~nF_conv.mp4" (
        del "%%~fF"
        ren "%%~dpF%%~nF_conv.mp4" "%%~nxF"
    )
)

所有信息都在原始代码中。所需要的只是将命令集包装在括号中,以便为每个输入文件执行三个命令。此外,如果转换后的文件存在,则包含aditional if仅删除源文件。