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

如何使用FOR /R命令在所有子文件夹批量运行指定FLAC转换脚本

批量处理子文件夹中WAV转FLAC的解决方案

我来帮你搞定这个批量处理的问题!你需要的是一个能递归遍历所有子文件夹并执行FLAC转换命令的批处理脚本,完全不用手动复制到每个子文件夹里。

最终可用的批处理脚本

把下面这段代码保存成.bat文件(比如BatchConvertWavToFlac.bat),直接放在你的主文件夹里运行就行:

@echo off
setlocal enabledelayedexpansion

:: 定义FLAC工具的路径,方便后续修改
set "FLAC_EXE=c:\Flac\flac.exe"

:: 递归遍历当前主文件夹下的所有子文件夹
for /r %%d in (.) do (
    :: 切换到当前子文件夹
    pushd "%%d"
    :: 先判断当前文件夹是否有WAV文件,避免空执行
    if exist *.wav (
        echo 正在处理文件夹: %%d
        "%FLAC_EXE%" -8 *.wav --verify --delete-input-file --replay-gain
        echo 文件夹 %%d 处理完成!
    )
    :: 切回主文件夹,继续下一个遍历
    popd
)

echo 所有文件夹处理完毕!
pause

脚本细节拆解

  • @echo off:关闭命令行的默认命令输出,让界面更整洁
  • setlocal enabledelayedexpansion:启用延迟环境变量扩展,确保循环中的路径变量能正常解析
  • set "FLAC_EXE=c:\Flac\flac.exe":把FLAC工具路径定义为变量,后续如果工具位置变动,直接改这一行就行
  • for /r %%d in (.) do:/r参数是核心——它会递归遍历当前目录(也就是你放脚本的主文件夹)下的所有子文件夹,%%d会依次代表每个子文件夹的完整路径
  • pushd "%%d":临时切换到当前子文件夹,这样*.wav就能精准匹配该文件夹内的WAV文件,不会跨目录
  • if exist *.wav:先检查当前文件夹有没有WAV文件,避免空文件夹执行命令时出现报错提示
  • 你的原FLAC转换命令完全保留,只是通过变量调用工具路径,确保路径解析不出问题
  • popd:切换回主文件夹,继续处理下一个子文件夹
  • pause:处理完成后暂停窗口,方便你查看处理结果,不会直接闪退

注意事项

  • 确认c:\Flac\flac.exe的路径和你实际的FLAC工具位置一致,不一致的话修改FLAC_EXE变量的值即可
  • 测试时可以先找一两个子文件夹验证效果,尤其是--delete-input-file参数会删除原WAV文件,一定要确认你不需要原文件再正式运行
  • 如果部分子文件夹里的WAV文件数量多,处理时间会稍长,耐心等待即可

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.22 09:45:10