Total Commander Forum Index Total Commander
Форум поддержки пользователей Total Commander
Сайты: Все о Total Commander | Totalcmd.net | Ghisler.com | RU.TCKB
 
 RulesRules   SearchSearch   FAQFAQ   MemberlistMemberlist   UsergroupsUsergroups   RegisterRegister 
 ProfileProfile   Log in to check your private messagesLog in to check your private messages   Log inLog in 

Single Post  Topic: Обработка файлов в зависимости от расширения 
Author Message
Tol!k



PostPosted: Sun May 29, 2011 11:54    Post subject: Обработка файлов в зависимости от расширения Reply with quote

ЛС 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
View user's profile Send private message


Powered by phpBB © 2001, 2005 phpBB Group