Option Explicit Const AppName = "MP3 Tags Reader sample 2" ' запрашиваем текст для поиска Dim SearchText SearchText = InputBox("Enter text to search in MP3 tags:", AppName) If Len(SearchText) = 0 Then WScript.Quit ' определяем стартовый каталог Dim Root Root = WScript.ScriptFullName Dim I I = InStrRev(Root, "\") If I = 0 Then I = InStrRev(Root, "/") Root = Left(Root, I - 1) ' создаем объект FileSystemObject - ' он будет использоваться в функции рекурсивного обхода каталогов Dim FSO Set FSO = CreateObject("Scripting.FileSystemObject") ' создаем объект Mp3TagsReader для тех же целей Dim Reader Set Reader = WScript.CreateObject("Scripting.Mp3TagsReader") ' строка, в которой будут накапливаться имена найденных файлов Dim S ' начинаем рекурсивный обход каталогов ScanFolder Root ' уничтожаем созданные ранее объекты Set Reader = Nothing Set FSO = Nothing If Len(S) = 0 Then ' если ничего не найдено S = "Search string not found!" Else ' иначе добавляем вводную строчку S = "Search string found in:" & vbNewLine & S End If ' выводим диалог с результатом MsgBox S, vbOkOnly + vbInformation, AppName ' это функция рекурсивного обхода каталогов Sub ScanFolder(FolderName) ' порлучаем текущий каталог Dim Folder Set Folder = FSO.GetFolder(FolderName) ' рекурсивно проходим все файлы Dim File For Each File In Folder.Files ' пытаемся прочитать теги MP3 Dim Result Result = Reader.Read(File.Path) If Result = 0 Then ' этот файл содержит теги MP3 ' ищем строку поиска в тегах If InStr(Reader.Title, SearchText) > 0 Or _ InStr(Reader.Artist, SearchText) > 0 Or _ InStr(Reader.Album, SearchText) > 0 Or _ InStr(Reader.Comment, SearchText) > 0 Then ' если нашли - добавляем к строке результата S = S & File.Path & vbNewLine End If End If Next ' рекурсивно проходим все подкаталоги Dim SubFolder For Each SubFolder In Folder.SubFolders ScanFolder SubFolder.Path Next End Sub