【问题标题】:Batch convert all subfolders and files of wav to mp3 using lame使用lame将wav的所有子文件夹和文件批量转换为mp3
【发布时间】:2013-09-09 08:02:12
【问题描述】:
我想将指定文件夹中的所有 WAV 文件转换为 MP3 并存储在相同的目录结构中,我们有几个文件夹和子文件夹列表,这些文件夹和子文件夹按日期命名,这些 WAV 录音存储在其中。
感谢相关帖子,我起床了,但无法跨越文件扩展名问题
for /r %i in (*) do if exist "%i.wav" do lame %i %i.mp3
我还在学习脚本。我使用的是 Windows XP
任何帮助将不胜感激
【问题讨论】:
-
不是对编码问题的回复,但如果这是一次性工作,我会使用foobar 来完成这项工作。
标签:
audio
batch-file
lame
【解决方案1】:
要在批处理文件中使用它,您需要双 %。
还有一种方法:
for /f "delims=" %%F in ('dir /b /s /a:-d *.wav') do (
lame "%%F" "%%~dpnF.mp3"
)
【解决方案2】:
即使这个问题已经得到解答,我还是想在这里发帖以帮助任何偶然发现这篇文章的人。
这是制作的批处理文件——它将m4a转换为mp3(但首先检查是否存在,因此不会创建重复文件)——保留原始文件名(而stackoverflow上的一些答案将是“songtitle.wav.mp3”。
您可以将 m4a 扩展名更改为您想要的任何内容。
它还会在转换完成后删除旧文件。如果不需要这种行为,只需删除末尾的 && del "%%A"。
我将它作为批处理文件保存在我的音乐目录的根目录中,然后 cd 到该目录并在那里运行它。
FOR /R %%A IN (*.m4a) DO (
IF NOT EXIST "%%~dA%%~pA%%~nA.mp3" B:\Software\ffmpeg-20180716-8aa6d9a-win64-static\bin\ffmpeg.exe -threads 8 -i "%%A" -vn -ac 2 -acodec libmp3lame -q:a 2 "%%~dA%%~pA%%~nA.mp3" && del "%%A"
)