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
Batya



PostPosted: Tue Aug 14, 2007 13:09    Post subject: Reply with quote

Идем сюда - Чтение тегов MP3-файлов (ActiveX, написанный на VBScript). Скачиваем mp3tags.wsc по ссылке, регистрируем.

Для переименования используем vbs-скрипт с параметром %L:
Code:
'==========================================================================
' Переименование файлов по mp3-тегам:
'   {Исполнитель} - {Название песни}.mp3
' В качестве входного параметра должно быть передано имя файла-списка

' Параметры вызова из TC:
' %L
'==========================================================================

Option Explicit
' Проверяем число аргументов
If WScript.Arguments.Count = 0 Then
  MsgBox "Неправильно заданы параметры!", _
    vbOKOnly + vbCritical, _
    "Переименование файлов по mp3-тегам"
  WScript.Quit
End If

Dim FSO, Mp3, List, OTF, File, Result
Set FSO = CreateObject("Scripting.FileSystemObject")
List = WScript.Arguments(0)
If Not FSO.FileExists(List) Then
  MsgBox "Неправильно заданы параметры!", _
    vbOKOnly + vbCritical, _
    "Переименование файлов по mp3-тегам"
  Set FSO = Nothing
  WScript.Quit
End If
Set Mp3 = CreateObject("Scripting.Mp3TagsReader")
Set OTF = FSO.OpenTextFile(List, 1)

' Читаем файл-список
Do While Not OTF.AtEndOfStream
  File   = OTF.ReadLine
  Result = Mp3.Read(File)
  ' Если без ошибок, то переименовываем
  If Result = 0 Then
    ' Переименовываем, если теги "Artist" и "Title" не пустые
    If (Len(Mp3.Artist) > 0) And (Len(Mp3.Title) > 0) Then
      ' Игнорируем ошибки переименования (обрабатываем по возможности все)
      On Error Resume Next
      FSO.GetFile(File).Name = Mp3.Artist & " - " & Mp3.Title & ".mp3"
      On Error GoTo 0
    End If
  End If
Loop
OTF.Close

Set OTF = Nothing
Set Mp3 = Nothing
Set FSO = Nothing
WScript.Quit


Last edited by Batya on Tue Aug 14, 2007 18:36; edited 1 time in total
View user's profile Send private message


Powered by phpBB © 2001, 2005 phpBB Group