如果命令不成功则删除文件

如果命令不成功则删除文件

我将 mp4 视频和 webm 视频与 srt(字幕)文件混合在一起。所有文件都有相同的文件名,但扩展名不同。如下所示:

Video1.mp4
Video1.srt

或者

Video2.webm
Video2.srt

有时,由于 srt 文件为空,muxing(将视频与字幕合并)会失败。我用来将视频与字幕合并的命令行工具名为 MKVMerge,有 3 个退出代码:

0——此退出代码意味着多路复用已成功完成。

1 -- 在这种情况下,mkvmerge(1) 至少输出了一个警告,但多路复用仍在继续。警告以文本“警告:”为前缀。根据所涉及的问题,生成的文件可能没问题,也可能有问题。建议用户检查警告和生成的文件。

2 -- 此退出代码用于发生错误后。mkvmerge(1) 在输出错误消息后立即中止。错误消息包括错误的命令行参数、读/写错误以及损坏的文件。

如果错误代码为 1,我想要一个命令来删除 SRT 文件。

以下是我所使用的:

FOR /R "D:\Folder" %%A IN (*.mp4 *.webm) do (
"D:\mkvmerge.exe" -o "%%~nxA" "%%~A" --language 0:eng "%%~nA.srt"
)

如果错误代码为 1(一),我希望该命令行删除 .srt 文件(使用与 mp4 或 webm 相同的文件名)。

答案1

如果错误代码为 1,我希望该命令行删除 .srt 文件。

查看设置的错误级别mkvmerge

尝试以下批处理文件:

FOR /R "D:\Folder" %%A IN (*.mp4 *.webm) do (
  "D:\mkvmerge.exe" -o "%%~nxA" "%%~A" --language 0:eng "%%~nA.srt"
  if %errorlevel% equ 1 (
    del /q "%%~nA.srt"
  )
)

进一步阅读

相关内容