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: Кнопка для пакетной конвертации в MP3 
Author Message
Flasher



PostPosted: Fri Aug 30, 2019 21:08    Post subject: Reply with quote

KarS
Пож-та.
Счётчик через кнопку, наверно, не выйдет. VBS устроит?
Code:
'================================= VBS =================================
' Конвертация выбранных FLAC в MP3 c добавкой счётчика при необходимости

' Параметры: %WL "<путь получателя>" "<ключи LAME>"
' Пример:    %WL "%P" "-b 320 -q 0 -m j --noreplaygain"

Option Explicit: Dim A, WSS, List, F, Ext, PF, BN, c, FN
'========================= Путь к утилите flac =========================
Const FLAC = """%COMMANDER_PATH%\Utils\Converters\Audio\FLAC\flac.exe"""
'========================= Путь к утилите lame =========================
Const LAME = """%COMMANDER_PATH%\Utils\Converters\Audio\LAME\lame.exe"""
'=======================================================================
Set A = WSH.Arguments : If A.Count = 0 Then WSH.Quit
If A.Count <> 3 Then MsgBox "Укажите 3 параметра!", 4144 : WSH.Quit
Set WSS = CreateObject("WScript.Shell")
With CreateObject("Scripting.FileSystemObject")
  Set List = .OpenTextFile(A(0),,,-1)
  PF = .BuildPath(A(1), "\")
  Do: F = List.ReadLine
    If Right(F, 1) <> "\" Then
      Ext = .GetExtensionName(F)
      If StrComp(Ext, "flac", 1) = 0 Then
        BN = .GetBaseName(F) : FN = BN & ".mp3" : c = 0
        While (.FileExists(PF & FN) OR .FolderExists(PF & FN))
          c = c + 1 : FN = BN & " (" & c & ").mp3"
        Wend
        WSS.Run "%ComSpec% /q/c """ & FLAC & " -cds """ & F & """|" &_
        LAME & " --quiet " & A(2) & " - """ & A(1) & FN & """""", 0, 1
      End If
    End If
  Loop Until List.AtEndOfStream
End With
List.Close : Set List = Nothing
WSS.Popup "Конвертация завершена!", 2, " Конвертация FLAC в MP3", 4160
Set WSS = Nothing
Если в конце 29-ой строки убрать ', 1', будет асинхронный запуск, но тогда ЦП забъётся.
_________________
Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.


Last edited by Flasher on Fri Sep 06, 2019 01:36; edited 1 time in total
View user's profile Send private message


Powered by phpBB © 2001, 2005 phpBB Group