Script Request
Модераторы: Avada, CaptainFlint, Nik, d-view, Моторокер
Количество и размер - это запросто. А вот что касается стиля, тут нужен ActiveX компонент, который умеет читать стили MP3. Ну, это можно найти, я думаю. А потом, что писать, если стили в файлах одной папки разные окажутся?
А, кстати, почему именно нужен скрипт? Скорее всего эти файлы с инфой - это результат работы какой-то программы, работающей с MP3, каталогизатора или типа того.
А, кстати, почему именно нужен скрипт? Скорее всего эти файлы с инфой - это результат работы какой-то программы, работающей с MP3, каталогизатора или типа того.
Все папки оформленны одним стандартом - в одной папе один жанр. Вот только программ я таких не находил(( слышал что такие файлы скриптами делаются. на крутых серверах с музыкой стоит фрибсд и там все по скриптам. но думаю и в тотале можно такое сотворить.. этот файлик полезен для подбития общей статистики и для создания сайта, чтобы связать страничку штмл с альбомами через него. а как хотябы размер и количество файлов записать в его название и вообще как его создать)?
Вот, например, скрипт, быстрая переделка другого моего скрипта для создания плейлистов (кстати их можно и объединить).
Код: Выделить всё
' File: MakeMP3report.vbs (2-nd edition)
' Description: Создает инфо-файл в текущей и в каждой
' в нее вложенной папке, если найдет в них файлы MP3
' Installation: Создайте кнопку на панели TC
' Команда: "диск:\путь\к\файлу\MakeMP3report.vbs"
' Параметры: "%P"
'(c)2008, Volniy
Option Explicit
Dim Fso, Cnt
Set Fso = CreateObject("Scripting.FileSystemObject")
If Fso.FolderExists(WScript.Arguments(0)) = False Then
MsgBox "Указана неверная директория!", vbCritical, "Ошибка"
Else
Call ScanFolderForMP3(Fso.GetFolder(WScript.Arguments(0)))
MsgBox "Информационных файлов создано: " & Cnt, vbInformation, "Завершено"
End If
Set Fso = Nothing
WScript.Quit
Sub ScanFolderForMP3(curFolder)
Dim SF
For Each SF In curFolder.SubFolders
ScanFolderForMP3 SF
Next
Call MakeInfoFile(curFolder)
End Sub
Sub MakeInfoFile(curFolder)
Dim F, fExt, Sz, CntMP3
'On Error Resume Next
For Each F In curFolder.Files
fExt = UCase(Fso.GetExtensionName(F.Name))
If fExt = "MP3" Then
CntMP3 = CntMP3 +1
Sz = Sz + F.Size
End If
Next
If cntmp3 Then
'[размер мп3 файлов_количество мп3 файлов]
Sz = FormatNumber(Sz/(1024*1024),2,-1, ,0)
Set F = curFolder.CreateTextFile("[" & sz & "mb_" & CntMP3 & "fl]", True)
F.Close: Cnt = Cnt + 1
End If
End Sub
Последний раз редактировалось Volniy Чт сен 18, 2008 22:55, всего редактировалось 1 раз.
Круто !!
О что надо. вот только как сделать чтобі размер в метрах віводило? я исправил "[" & sz/1000000 & "mb_" & CntMP3 & "f]" но выводит в формате 10,585468mb(( хотелось бы 10,58мб
А если усложнить?
Мне эта тема очень помогага до определенного этапа. Теперь нужно запихать файл на несколько уровней поглубже.
Т.е. файлы
ded_moroz_krasny_nos_01.jpg
ded_moroz_06.jpg
varvara_krasa_dlinnaya_kosa_02.jpg
нужно раскидать по папкам:
ded/moroz/krasny/nos/ded_moroz_krasny_nos_01.jpg
ded/moroz/ded_moroz_06.jpg
varvara/krasa/dlinnaya/kosa/varvara_krasa_dlinnaya_kosa_02.jpg
А в идеале название папки с заглавной буквы, а имя файла обрезать до номера. т.е.
Ded/Moroz/Krasny/Nos/01.jpg
Ded/Moroz/06.jpg
Varvara/Krasa/Dlinnaya/Kosa/02.jpg
Проблема еще в том, что глубина разная.
Не подскажите, как быть?
Т.е. файлы
ded_moroz_krasny_nos_01.jpg
ded_moroz_06.jpg
varvara_krasa_dlinnaya_kosa_02.jpg
нужно раскидать по папкам:
ded/moroz/krasny/nos/ded_moroz_krasny_nos_01.jpg
ded/moroz/ded_moroz_06.jpg
varvara/krasa/dlinnaya/kosa/varvara_krasa_dlinnaya_kosa_02.jpg
А в идеале название папки с заглавной буквы, а имя файла обрезать до номера. т.е.
Ded/Moroz/Krasny/Nos/01.jpg
Ded/Moroz/06.jpg
Varvara/Krasa/Dlinnaya/Kosa/02.jpg
Проблема еще в том, что глубина разная.
Не подскажите, как быть?
Очень коротко отвечу: это нереально. Вы неверно предствляете себе ундо-файл. Он должен восстановить содержимое Реестра до применения рег-файла. Для этого нужно оценить изменение содержимого реестра. Как? Есть только один более-менее реальный способ: снятие снимков реестра до и после операции, приводящей к изменениям в реестре, и их последующее сравнение.
IMHO: Скрипт не может создать undo только по содержимому рег-файла.(точка)
IMHO: Скрипт не может создать undo только по содержимому рег-файла.(точка)
Я пытался разбить процесс на несколько этапов. Раскидать в папки с названиями до первого прочерка мне удалось строкой.
DashInName = Instr(FileName, "_")
В скрипте Бати в этой теме. А на следующий уровень сдвинуть папки не получается. Т.е. до второго прочерка.
DashInName = Instr(FileName, "_", 2)
Вроде, все правильно написано.
DashInName = Instr(FileName, "_")
В скрипте Бати в этой теме. А на следующий уровень сдвинуть папки не получается. Т.е. до второго прочерка.
DashInName = Instr(FileName, "_", 2)
Вроде, все правильно написано.
Не правильно. Для поиска позиции следующего символа _gumanok писал(а):Вроде, все правильно написано.
Код: Выделить всё
DashInName = Instr(DashInName + 2, FileName, "_")Код: Выделить всё
AllDashes = Split(FileName, "_")
'MsgBox AllDashes(0) & vbCr & AllDashes(1)