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

Batch file 在批处理文件中删除手制动后的输入文件,batch-file,handbrake,Batch File,Handbrake,我以批处理文件的形式为HandBrakeCLI编写了这段代码,以操纵我的视频。此代码使用输入文件名加上“_conv”后缀创建输出文件 然后我想删除原始文件,然后删除输出文件的_conv部分。上面的代码应该添加什么 我想在转换后删除每个文件,或者至少在从其包含的文件夹转到另一个文件夹时删除,而不是在转换所有文件后完全删除(因为必须转换大量文件,我可能会耗尽空间) 顺便问一下,如何在代码中添加*.mov之外的其他格式 for /R .\test %%F in (*.mov) do ( Han

我以批处理文件的形式为HandBrakeCLI编写了这段代码,以操纵我的视频。此代码使用输入文件名加上“_conv”后缀创建输出文件

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

我想在转换后删除每个文件,或者至少在从其包含的文件夹转到另一个文件夹时删除,而不是在转换所有文件后完全删除(因为必须转换大量文件,我可能会耗尽空间)

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

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"
    )
)

所有信息都在原始代码中。所需的只是将命令集包装在括号中,以便对每个输入文件执行这三个命令。此外,还包括了一个传统的
if
,仅当转换文件存在时才删除源文件。

我会测试
if!错误等级!equ 0如果存在“%%~dpF%%~nF_conv.mp4”(
假设
HandBrakeCLI
正确返回错误代码…这可能有好处吗?@Josefz,如果手刹在故障时提高错误级别(不,我手头没有要测试的软件),如果不是错误级别1,最好使用
(这不需要代码中的延迟扩展)或使用其余命令的条件执行,并且在这两种情况下,删除文件存在性测试(或者如果您像我一样偏执,最好保留它)。文件已转换。原始文件已删除。但输出文件未被重命名。
ren“%%~dpF%%~nF_conv.mp4”“%%~nxF”
as
rename
target可能不包含路径,而是包含文件名(当然,带有扩展名)only@livingbeing,通常的复制/粘贴问题。我忘记从重命名命令中删除最终名称的路径。我的错误。答案已更新
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"
    )
)