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
campoviy



PostPosted: Sun May 29, 2011 15:00    Post subject: Reply with quote

Tol!k
Большое спасибо, это именно то, что нужно! Smile
Quote:
*.alac не проверял
Apple Lossless decoders: Generic Win32 compile; P4 Win32 compile.
А вот, версия (тоже без зависимостей), скопилированная в Visual Studio 2010, из актуальных исходников.
Взялся проверить, наткнулся на:
Quote:
Не удается найти указанную метку пакетного файла - .m4a
-------------------------------------------------------------------------------

Для продолжения нажмите любую клавишу . . .
Решил проблему заменой строки ":.ALAC" на ":.M4A"; соответственно, поправьте пожалуйста пост.

Однако, для любителей VBS-скриптов могу предложить такой вариант, автор - Batya:
Code:
'======================================================================
' Исполнение связанной программы в зависимости от расширения файла
'   для каждого файла из файла-списка и для каждого вложенного файла
'   для папок из файла-списка. Исполнение выполняется последовательно.
'
' Параметры:
' {файл-список}
'
' Пример параметров при вызове из TC:
' %L
'======================================================================
Option Explicit
Dim FSO, WSH, FF, F

With WScript
  If .Arguments.Count = 0 Then
    MsgBox "Не заданы параметры!", vbOKOnly + vbCritical, "Исполнение связанных программ"
    .Quit
  End If
  FF = .Arguments(0)
End With

Set FSO = CreateObject("Scripting.FileSystemObject")
Set WSH = CreateObject("WScript.Shell")

With FSO.OpenTextFile(FF, 1)
  Do While Not .AtEndOfStream
    F = Trim(.ReadLine)
    If F <> "" Then
      If FSO.FolderExists(F) Then ForFolder FSO.GetFolder(F)
      If FSO.FileExists(F)   Then WSH.Run CommandLine(FSO.GetFile(F)), 1, True
    End If
  Loop
  .Close
End With

Set FSO = Nothing
Set WSH = Nothing
WScript.Quit

Sub ForFolder(pFolder)
  Dim lF
  For Each lF In pFolder.Files
    WSH.Run CommandLine(lF), 1, True
  Next
  For Each lF In pFolder.SubFolders
    ForFolder lF
  Next
End Sub

Function CommandLine(pFile)
  Dim lPath, lName, lExt
  lPath = pFile.ParentFolder.Path
  lName = FSO.GetBaseName(pFile)
  lExt  = UCase(FSO.GetExtensionName(pFile))
  Select Case lExt
    Case "FLAC"
      CommandLine = """C:\Program Files\Tools\FLAC\flac.exe"" -d """ & pFile & """"
    Case "APE"
      CommandLine = """C:\Program Files\Tools\MAC\MAC.exe"" """ & pFile & """ """ & lPath & "\" & lName & ".wav"" -d"
    Case "M4A"
      CommandLine = """C:\Program Files\Tools\ALAC\alac.exe"" -f """ & lPath & "\" & lName & ".wav"" """ & pFile & """"
  End Select
End Function
View user's profile Send private message


Powered by phpBB © 2001, 2005 phpBB Group