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

如何用PowerShell调用ffmpeg转换FLAC为MP3并保留原文件修改日期

需求可直接实现,无需额外第三方工具,仅通过PowerShell原生的文件属性操作配合你正在使用的ffmpeg即可完成,单次执行就能同时处理所有6000个文件的转码+修改日期同步。

优化后的批量处理命令

Get-ChildItem -Filter *.flac | ForEach-Object {
    # 生成对应mp3文件路径,避免文件名含flac字符时替换错误
    $mp3Path = Join-Path $_.DirectoryName ($_.BaseName + '.mp3')
    # 执行ffmpeg转码,-y参数表示自动覆盖已存在的mp3,不需要可删除
    ffmpeg -i $_.FullName -c:v copy -b:a 320k $mp3Path -y
    # 同步修改日期为原flac文件的修改时间
    (Get-Item $mp3Path).LastWriteTime = $_.LastWriteTime
}

如果你想沿用原有替换写法,也可以使用以下版本

dir *.flac | foreach {
    $mp3Path = $_.FullName.Replace('.flac', '.mp3')
    ffmpeg -i $_.FullName -c:v copy -b:a 320k $mp3Path -y
    (Get-Item $mp3Path).LastWriteTime = $_.LastWriteTime
}

命令说明

  • 转码逻辑和你原有逻辑完全一致,专辑封面仍然会保留不会被转码
  • 时间同步逻辑直接调用PowerShell原生的文件属性赋值,性能足够处理6000个文件的批量操作
  • 路径生成逻辑做了小优化,避免文件名中间带有flac字符串时出现误替换的问题

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 01:27:02