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: Wed Jun 15, 2016 01:57    Post subject: Reply with quote

sibirnik
Code:
'••••••••••••••••••••••••••••••• VBS ••••••••••••••••••••••••••••••
' Запись MP3-тегов [Название], [Альбом], [Исполнитель], взятых из
' базовых имён файлов по шаблону: [Альбом]-[Исполнитель]-[Название]
'
' Примечание: 1) Элементы шаблона могут отсекаться слева направо.
' 2) Если слева имени имеется номер, то он и станет соотв. тегом.
'
' 2 варианта ключей:
'   1) /l:%WL (приоритетный - только для выбранных в панели файлов)
'   2) /p:[<Путь к каталогу с MP3-файлами>]
'      /r:<выкл (умол.)/вкл обработку всей структуры каталога: 0/1>
' Вспомогательный ключ предварительной очистки всех тегов: /d:1
'
' Примеры:   /l:%WL   |   /p:"%P" /r:1   |   /d:1 /p:"%P"
'
Option Explicit
'••••••••••••••••••••••••• Пути к утилитам ••••••••••••••••••••••••
Const ID3Edit = "%COMMANDER_PATH%\Utils\Tags\ID3\id3.exe"
Const TagEdit = "%COMMANDER_PATH%\Utils\Tags\Tag\Tag.exe"
'••••••••••••••••••••••••••••••••••••••••••••• Автор: Flasher © •••

Dim Del, Folder, Sec, Recurse, Regexp, WMP, WSH, ShA, FSO, List, F, Check
Const Title = " Заполнение тегов в MP3      "
With WScript.Arguments.Named
  If .Count = 0 Then WScript.Quit
  If .Exists("d") Then Del = .Item("d")
  If .Exists("l") Then
    List = .Item("l")
  Else
    If .Exists("p") Then Folder  = .Item("p") Else _
    MsgBox  "Укажите ключ /p:<Путь к папке с MP3> !", 4144, Title : WScript.Quit
    If .Exists("r") Then Recurse = .Item("r")
  End If
End With : Set Regexp = New Regexp
Set WSH = CreateObject("WScript.Shell")
Set ShA = CreateObject("Shell.Application")
Set FSO = CreateObject("Scripting.FileSystemObject")
If Folder <> "" And Not FSO.FolderExists(Folder) Then _
MsgBox "Путь каталога с MP3-файлами указан неверно!", 4144, Title : WScript.Quit
For Each F in Array(ID3Edit, TagEdit)
  If Not FSO.FileExists(WSH.ExpandEnvironmentStrings(F)) Then MsgBox _
  "Укажите верный путь к " & FSO.GetFileName(F) &"!", 4144, Title : WScript.Quit
Next : Regexp.Pattern = "^0*(\d+) *[\.\-]+ *"
If List <> "" Then
  Set List = FSO.OpenTextFile(List,,,-1)
  Do : F = List.ReadLine
    If FSO.FileExists(F) And _
    LCase(FSO.GetExtensionName(F)) = "mp3" Then FFile F : Check = 1
  Loop Until List.AtEndOfStream
Else FFolder Folder End If
If Check = 1 Then  MsgBox "Выполнено!", 4160, Title _
Else MsgBox "MP3 файлы не обнаружены!", 4144, Title

Sub FFolder(Dir)
  Set Dir = ShA.NameSpace(Dir)
  Dim Items : Set Items = Dir.Items
  Items.Filter 8384, "*.mp3"
  If Items.Count Then
    For Each F in Items : FFile   F.Path : Next : Check = 1
  End If
  If Recurse = 1 Then
    Items.Filter 8352, "*"
    For Each F In Items : FFolder F.Path : Next
  End if
End Sub

Sub FFile(File)
  Dim BN, Num, Track, Album, Artist, Tags, Ln
  BN = Trim(FSO.GetBaseName(File)) : Num = ""
  Track = "" : Album = "" : Artist = ""
  With Regexp
    If .Test(BN) Then Set Ln = .Execute(BN)(0) : Num = Ln.Submatches(0)
  End With : If IsNumeric(Num) Then BN = Mid(BN, Len(Ln) + 1)
  Tags = Split(BN, "-")
  Select Case Ubound(Tags)
    Case 0 Track  = Trim(Tags(0))
    Case 1 Artist = Trim(Tags(0)) : Track  = Trim(Tags(1))
    Case 2 Album  = Trim(Tags(0)) : Artist = Trim(Tags(1)) : Track = Trim(Tags(2))
  End Select
  If Del = 1 Then WSH.Run """" & TagEdit & """ --remove """ & File & """", 0, True
  WSH.Run """" & ID3Edit & """ -2 -natl """ & Num & """ """ & Artist & _
  """ """ & Track & """ """ & Album & """ """ & File & """", 0, True
  WSH.Run """" & TagEdit & """ --track """ & Num & """ --artist """ & Artist & """" &_
  " --title """ & Track  & """ --album """ & Album & """ """ & File & """", 0, True
End Sub
Скачать ID3 и Tag.
_________________
Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.


Last edited by Flasher on Fri Jun 24, 2016 13:35; edited 11 times in total
View user's profile Send private message


Powered by phpBB © 2001, 2005 phpBB Group