Tol!k

|
Posted: Sun May 29, 2011 11:54 Post subject: Обработка файлов в зависимости от расширения |
|
|
ЛС wrote: | Иногда возникает необходимость в декомпрессии lossless аудио-файлов в формат WAV. Конкретно речь идёт о FLAC, APE, ALAC: flac.exe, MAC.exe, alac.exe.
Я изучил параметры программ, и написал следующие юзер-команды (их выполнение приводит к созданию WAV-файла %P%O.wav). Code: | [em_FLAC->WAV]
cmd=C:\Program Files\Tools\FLAC\flac.exe
param=-d %P%N
menu=Декомпрессия FLAC в WAV |
Code: | [em_APE->WAV]
cmd=C:\Program Files\Tools\MAC\MAC.exe
param=%P%N "%P%O.wav" -d
menu=Декомпрессия APE в WAV |
Code: | [em_ALAC->WAV]
cmd=C:\Program Files\Tools\ALAC\alac.exe
menu=Декомпрессия ALAC в WAV
param=-f "%P%O.wav" %P%N | Вышеприведённое работает лишь для одного файла, причём всегда необходимо смотреть на формат исходного файла.
Собственно, просьба в следующем: сделайте пожалуйста батник, который можно повесить на кнопку, и приписав оной некоторые параметры, уже НЕ задумываться о формате исходного lossless-файла.
То есть: выделили всё вперемешку (FLAC, APE, ALAC), нажали кнопку - получили кучу WAV-файлов, они "сделаны" разными экзешниками.
То есть в батнике ветвление, некоторое, если формат такой-то - обрабатывать одним экзешнком, иной формат - другим.
Формат файла в данном случае определяется исключительно расширением. |
Code: | @echo off &setlocal enableextensions &chcp 1251 >nul
rem Обработка файлов в зависимости от расширения
rem Параметры: "%L"
rem Автор: Tol!k
for /f "usebackq delims=" %%s in ("%~1") do (
for /f "delims=" %%f in ('dir /b/s/a-d/o-n "%%s"') do (
title "%%f" &echo "%%f"
if not "%%~xf"=="" call :%%~xf "%%f"
echo -------------------------------------------------------------------------------
)
)
title Done. &pause
goto :eof
:.FLAC
rem Decoding: flac -d [<general-options>] [<format-options>] [FLACFILE [...]]
"C:\Program Files\Tools\FLAC\flac.exe" -d -f %1
goto :eof
:.APE
rem Decompress: mac.exe "Metallica - One.ape" "Metallica - One.wav" -d
"C:\Program Files\Tools\MAC\MAC.exe" %1 "%~dpn1.wav" -d
goto :eof
:.M4A
rem Usage: alac [options] [--] file
"C:\Program Files\Tools\ALAC\alac.exe" -f "%~dpn1.wav" %1
goto :eof
|
*.alac не проверял
Add:
campoviy wrote: | > Не удается найти указанную метку пакетного файла - .m4a
Решил проблему заменой строки ":.ALAC" на ":.M4A"; соответственно, поправьте пожалуйста пост. |
OK
Last edited by Tol!k on Mon May 30, 2011 22:18; edited 2 times in total |
|