Batch file for循环后的条件(批处理/CMD)

Batch file for循环后的条件(批处理/CMD),batch-file,cmd,ffmpeg,Batch File,Cmd,Ffmpeg,因此,我目前有一批使用ffmpeg将当前文件夹中的每个.MTS转换为.MP4,但完成后,我在文件夹中同时获得了.MP4和.MTS。 我有两个批处理,一个用于转换文件,另一个用于在以后删除不需要的文件,但是我在尝试将它们加入同一批处理脚本时遇到了问题 Converter.bat: 对于(*.MTS)中的%%i,执行ffmpeg-i“%%i”-c:a libfdk_aac-b:a 256k”%%~ni.mp4” Delete.bat: del/S*.MTS 有什么帮助吗?要“在批处理脚本中加入它们”

因此,我目前有一批使用ffmpeg将当前文件夹中的每个.MTS转换为.MP4,但完成后,我在文件夹中同时获得了.MP4和.MTS。 我有两个批处理,一个用于转换文件,另一个用于在以后删除不需要的文件,但是我在尝试将它们加入同一批处理脚本时遇到了问题

Converter.bat:

对于(*.MTS)中的%%i,执行ffmpeg-i“%%i”-c:a libfdk_aac-b:a 256k”%%~ni.mp4”

Delete.bat:

del/S*.MTS

有什么帮助吗?

要“在批处理脚本中加入它们”,只需将它们写入同一批处理脚本:

@echo off
for %%i in (*.MTS) do ffmpeg -i "%%i" -c:a libfdk_aac -b:a 256k "%%~ni.mp4"
del /S *.MTS
尽管我建议:

@echo off
for %%i in (*.MTS) do ffmpeg -i "%%i" -c:a libfdk_aac -b:a 256k "%%~ni.mp4" && del /S "%%i"
&&
表示“仅在上一次转换成功时执行以下操作”,因此仅当转换成功时,才会删除该文件


(重新考虑
del/s
-它将删除当前文件夹和所有子文件夹中的文件。简单的
del“%%i”
将只删除已处理的文件并将文件保留在任何子文件夹中)

&&
正是我所期待的,谢谢!供将来使用:相反的是
|
(“如果上一个命令失败,那么”)。您甚至可以将它们组合起来:
&&echo successfull | | echo failed