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
Rodny



PostPosted: Wed Jun 11, 2008 22:36    Post subject: Reply with quote

Программы-конвертеры запускают lame.exe несколько раз поочерёдно.
Для TC mozers написал скрипт List2Multi, который делает то же самое. Вот вроде последняя версия:
Code:
'  File:         List2Multi.vbs
'  Description:  Скрипт для загрузки выделенных в Total Commander файлов в заданную программу
'  Version:      1.2
'  Author:       mozers™
'  Comments:     Предназначен для программ НЕ поддерживающих загрузку нескольких файлов с ком.строки.
'                Поэтому скрипт вызывает программу многократно:
'                programm.exe [/param1 /param2] file1.ext
'                programm.exe [/param1 /param2] file2.ext
'                programm.exe [/param1 /param2] file3.ext
'  Sample:       Создаем кнопку на панели инструментов (или команду в меню "Запуск"):
'                Команда: %COMMANDER_PATH%\Utils\WSH\List2Multi.vbs "%ProgramFiles%\WinRAR\WinRAR.exe" X
'                Параметры: %L
' _________________________________________________________
Option Explicit
Dim WshShell, FSO, sProg, objArgs, FileList, sFile, count, param, i

Set objArgs = WScript.Arguments
Set WshShell = WScript.CreateObject("WScript.Shell")
sProg = WshShell.ExpandEnvironmentStrings(objArgs(0))
count = objArgs.Count
If count < 2 Then
   WshShell.Run """" & sProg & """", 1, False
Else
   param = ""
   For i = 1 To count-2
      param = param + " " + objArgs(i)
   Next
   Set FSO = CreateObject("Scripting.FileSystemObject")
   Set FileList = FSO.OpenTextFile(objArgs(count-1), 1, False)
   Do While Not FileList.AtEndOfStream
      sFile = FileList.ReadLine
      If Right(sFile,1) = "\" Then
         WshShell.Run """" & sProg & """", 1, False
         Exit Do
      End If
      WshShell.Run """" & sProg & """ " & param & " """ & sFile & """", 1, False
   Loop
End If
WScript.Quit

Кнопка будет такой
Code:
TOTALCMD#BAR#DATA
%COMMANDER_PATH%\Utils\WSH\List2Multi.vbs "%ProgramFiles%\foobar2000\codecs\lame.exe" -b 128
%L
%ProgramFiles%\Totalcmd\totalcmd.exe,2
Lame

-1
-1

Возможное неудобство в том, что команда выполняется для всех выделенных файлов сразу, что неслабо может нагрузить систему. Тут уж смотри сам, какие у тебя ситуации.

А вот как быть в этом случае с переименованием/перемещением - даже мыслей нет.
У меня для этого специализированный софт стоит.


Last edited by Rodny on Wed Jun 11, 2008 22:49; edited 1 time in total
View user's profile Send private message


Powered by phpBB © 2001, 2005 phpBB Group