如何将MTS转MP4批处理与删除原文件脚本合并?
合并MTS转MP4与删除脚本的解决方案
没问题,我来帮你把这两个批处理脚本合并成一个,还会加上转换成功才删除的安全逻辑,避免误删未转换成功的文件。
完整合并脚本
直接把下面的代码保存为ConverterAndCleanup.bat即可:
@echo off setlocal enabledelayedexpansion :: 转换所有.MTS文件为MP4 echo 开始转换MTS文件到MP4... for %%i in (*.MTS) do ( echo 正在处理: "%%i" ffmpeg -i "%%i" -c:a libfdk_aac -b:a 256k "%%~ni.mp4" :: 检查FFmpeg转换是否成功(成功返回0) if !errorlevel! equ 0 ( echo "%%i" 转换成功,标记为可删除 set "to_delete=!to_delete! "%%i"" ) else ( echo "%%i" 转换失败,跳过删除 ) ) :: 删除所有转换成功的MTS文件 if defined to_delete ( echo 开始删除转换成功的MTS文件... del /S !to_delete! ) else ( echo 没有转换成功的MTS文件需要删除 ) echo 所有操作完成! pause
关键细节解释
@echo off:关闭命令行的命令回显,让输出更整洁,只显示我们自定义的提示信息setlocal enabledelayedexpansion:启用延迟环境变量扩展,确保在循环中能正确更新和读取to_delete列表与errorlevel值- 安全校验逻辑:只有当FFmpeg转换成功(
errorlevel为0)时,才会把对应的MTS文件加入待删除列表,避免误删转换失败的源文件 del /S:递归删除当前目录及子目录下的目标文件,如果你只想处理当前目录,去掉/S参数即可pause:脚本执行完成后会暂停窗口,方便你查看转换和删除的结果
注意事项
- 确保你的系统已经正确安装FFmpeg,并且能在命令行直接运行
ffmpeg命令(可以先在cmd里输入ffmpeg -version测试) - 强烈建议先备份所有MTS文件再测试脚本,避免意外数据丢失
- 如果需要处理子文件夹里的MTS文件,把
for %%i in (*.MTS)改成for /R %%i in (*.MTS)即可
内容的提问来源于stack exchange,提问作者Qwertz
相关产品推荐
相关产品推荐

