You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

递归处理MP4的批处理脚本重命名失效,求纯批处理替代方案

纯批处理递归处理MP4文件并重命名的解决方案

原脚本依赖外部PowerShell脚本完成重命名,递归子文件夹时容易出现不可靠问题。以下是无需额外脚本的纯批处理方案,直接在循环内完成元数据修改、原文件删除和重命名操作:

@echo off
setlocal enabledelayedexpansion

:: 递归遍历所有.mp4文件
for /r %%I in (*.mp4) do (
    :: 定义临时输出文件路径
    set "temp_output=%%~pnI_2.mp4"
    
    :: 用FFmpeg添加音视频轨道语言元数据,复制流不重新编码
    ffmpeg.exe -i "%%I" -metadata:s:v:0 language=eng -c:v copy -metadata:s:a:0 language=eng -c:a copy "!temp_output!"
    
    :: 检查FFmpeg执行状态,成功才继续后续操作
    if !errorlevel! equ 0 (
        :: 删除原文件
        del /Q "%%I"
        :: 将临时文件重命名为原文件名
        rename "!temp_output!" "%%~nxI"
    ) else (
        :: 处理失败时清理临时文件并提示
        echo 处理失败:"%%I"
        if exist "!temp_output!" del /Q "!temp_output!"
    )
)

endlocal

关键说明:

  • 启用enabledelayedexpansion实现循环内变量的动态赋值与读取,确保子文件夹内的文件路径处理正确
  • 仅在FFmpeg成功处理文件后,才删除原文件并重命名临时文件,避免意外丢失原文件
  • 去掉了外部PowerShell脚本依赖,所有操作在单个批处理循环内完成,彻底解决递归场景下的重命名不可靠问题

内容的提问来源于stack exchange,提问作者AndyM

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.24 22:27:19