Удаление входного файла после ручного торможения в batch-файле

Я написал этот код для 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 ответ

Решение
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 был включен для удаления исходного файла, только если преобразованный файл существует.

Другие вопросы по тегам