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

如何将Linux/Ubuntu下批量清除MP4文件元数据的FFmpeg命令转换为Windows命令?

如何将Linux/Ubuntu下批量清除MP4文件元数据的FFmpeg命令转换为Windows命令?

嘿,我来帮你把这条Linux下的批量处理命令转换成Windows能用的版本~先给你拆解下原命令的核心逻辑:创建一个叫Fertig的文件夹,然后遍历当前目录下所有.mp4文件,用ffmpeg清除每个文件的元数据(-map_metadata -1),同时直接复制音视频流保证无损(-c:v copy -c:a copy),最后把处理好的文件存到Fertig文件夹里。

下面分两种常用的Windows终端场景给你对应的命令:

1. 适用于CMD命令提示符的版本

如果你习惯用CMD,可以用这条批处理命令:

:: 创建Fertig文件夹,忽略已存在的错误提示
mkdir Fertig >nul 2>&1
:: 遍历所有mp4文件,调用ffmpeg处理
for %%f in (*.mp4) do ffmpeg -i "%%f" -map_metadata -1 -c:v copy -c:a copy "Fertig\%%f"

小提示:如果是直接在CMD窗口里输入(不是保存成.bat脚本),把%%f改成%f就行;如果你的ffmpeg.exe没加到系统环境变量里,记得把ffmpeg换成完整路径,比如"C:\Program Files\ffmpeg\bin\ffmpeg.exe"。

2. 适用于PowerShell的版本

如果用PowerShell的话,写法更贴近Linux的风格:

# 创建Fertig文件夹,已存在则跳过
New-Item -ItemType Directory -Name Fertig -Force | Out-Null
# 遍历mp4文件并批量处理
Get-ChildItem -Filter *.mp4 | ForEach-Object {
    ffmpeg -i $_.FullName -map_metadata -1 -c:v copy -c:a copy "Fertig\$($_.Name)"
}

同样,如果ffmpeg不在环境变量里,替换成完整路径即可,比如"C:\Program Files\ffmpeg\bin\ffmpeg.exe"。

关键差异说明

  • Windows里的路径分隔符是反斜杠\,而Linux是正斜杠/,所以输出路径要改成Fertig\%%f或者Fertig\$($_.Name)
  • CMD的for循环语法和Linux的shell循环不一样,批处理脚本里要用双百分号%%,直接在CMD窗口用单百分号%
  • PowerShell的文件遍历用Get-ChildItem,变量引用用$_.开头的属性

备注:内容来源于stack exchange,提问作者Markus Scheifinger

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.15 11:35:27