Пакетное преобразование всех подпапок и файлов wav в mp3 с помощью lame

Я хотел бы преобразовать все файлы WAV в указанной папке в MP3 и сохранить в той же структуре каталогов. У нас есть несколько списков папок и подпапок, названных по дате, где хранятся эти записи WAV.

Я дошел до сути благодаря связанным сообщениям, но не смог решить проблему с расширением файла.

for /r %i in (*) do if exist "%i.wav" do lame %i %i.mp3

Я все еще учусь писать сценарии. Я использую Windows XP

Любая помощь будет оценена


person Srini    schedule 09.09.2013    source источник
comment
Не ответ на вопрос о кодировании, но если это разовая работа, я использую для этого foobar. .   -  person topo Reinstate Monica    schedule 09.09.2013


Ответы (2)


чтобы использовать это в пакетном файле, вам понадобится двойной %.

Вот еще один способ:

for /f "delims=" %%F in ('dir /b /s /a:-d *.wav') do (
 lame "%%F" "%%~dpnF.mp3"
) 
person npocmaka    schedule 09.09.2013
comment
Я должен быть более осторожным. - person npocmaka; 09.09.2013

Несмотря на то, что на это есть ответ, я хотел бы опубликовать это здесь, чтобы помочь всем, кто наткнется на этот пост.

Вот созданный пакетный файл - он преобразует m4a в mp3 (но сначала проверяет его существование, поэтому дубликаты не создаются) - сохраняя исходное имя файла (тогда как некоторые ответы на stackoverflow будут «songtitle.wav.mp3».

Вы можете изменить расширение m4a на любое другое.

Он также удаляет старый файл, когда преобразование выполнено. Просто удалите && del "%%A" в конце, если такое поведение нежелательно.

Я сохраняю это как пакетный файл в корневом каталоге моего музыкального каталога, перехожу в каталог и запускаю его там.

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"
)
person Meep    schedule 22.01.2019