51 (изменено: Malcev, 2016-10-18 20:20:18)

Re: Переименование mp3-файлов по tag-маске с перемещением

Malcev, к сожалению, не умею проводить отладку скриптов

Можно поставить таймеры между выполнениями комманд, функций и посмотреть на что тратится время.
Может у вас mp3 какие-нибудь специфичные.

52

Re: Переименование mp3-файлов по tag-маске с перемещением

У меня ещё была мысль, что это связано с 3-мя For внутри одного For. Как отрабатывает с этим библиотека 10-ки, пока не знаю. Можно поковырять и заменить на функцию. На 7-ке же мой скрипт отрабатывает быстрее, чем Tag.
Ещё интересно, не может ли AIMP MPEG Layer делать бяку?

53 (изменено: Rumata, 2016-10-19 00:03:21)

Re: Переименование mp3-файлов по tag-маске с перемещением

Скрипт работает в текущем каталоге

1. ищет все mp3 файлы в подкаталоге
unsorted\*.mp3

2. считывает теги в файлы метаданных
metadata\имя-файла.txt

3. переименовывает и перемещает согласно существующим тегам по схеме (можно изменить на требуемое)
sorted\исполнитель\год - альбом\трек. композиция.расширение

4. в случае нахождения одноименных файлов в каталоге-приемнике переименовывает, добавляя к имени файла (2), (3) и т.д.

5. если какие-либо теги отсутствуют - используются предопределенные значения (Unknown или 0; можно изменить)

6. создвет в текущем каталоге лог-файл своих действий

Требования
ffmpeg/libav

Производительность
10-12 секунд на 120 файлах общим объемом 1.5 ГБ


@echo off

setlocal

set "srcdir=unsorted"
set "dstdir=sorted"
set "metadir=metadata"

set "MEDIACONV=avconv"
::set "MEDIACONV=ffmpeg"

echo %DATE% %TIME%

call :main > "%~f0.log" 2>&1

echo %DATE% %TIME%

endlocal
goto :EOF

:main
md "%metadir%"
md "%dstdir%"

for /f "tokens=*" %%f in ( '
	dir /b /s "%srcdir%\*.mp3"
' ) do (
	call :init "%%f"

	call :read-tags
	call :parse-tags

	call :move-file
)
goto :EOF


:init
set "srcfile=%~f1"
set "srcext=%~x1"

for %%f in ( "%~dp1..\%metadir%\%~n1.txt" ) do set "metafile=%%~ff"

echo:Starting: %srcfile%

set "tag.artist=Unknown"
set "tag.date=Unknown"
set "tag.album=Unknown"
set "tag.track=0"
set "tag.title=Unknown"
goto :EOF


:read-tags
rem ;FFMETADATA1
rem album=From Chaos to Eternity
rem track=1/10
rem genre=Symphonic Power Metal\;Region Italy
rem title=Ad Infinitum
rem artist=Rhapsody of Fire
rem date=2011
rem encoder=Lavf56.7.104
echo:Metadata: %metafile%
"%MEDIACONV%" -i "%srcfile%" -y -f ffmetadata "%metafile%" 2>nul
goto :EOF


:parse-tags
echo:Parse tags
for /f "usebackq tokens=1,* delims==" %%a in ( 
	"%metafile%"
) do (
	if "%%a" == "artist" set "tag.artist=%%b"
	if "%%a" == "date" set "tag.date=%%b"
	if "%%a" == "album" set "tag.album=%%b"
	if "%%a" == "title" set "tag.title=%%b"
	if "%%a" == "track" for /f "tokens=1 delims=/" %%t in ( "%%b" ) do set "tag.track=%%t"
)

rem sprintf "%02d"
set "tag.track=0000%tag.track%"
set "tag.track=%tag.track:~-2%"
goto :EOF


:move-file
rem Artist\Date - Album\Track. Title.Extension
set "newdir=%dstdir%\%tag.artist%\%tag.date% - %tag.album%"
set "newname=%tag.track%. %tag.title%"
set "newext=%srcext%"

if not exist "%newdir%" md "%newdir%"

if exist "%newdir%\%newname%%newext%" call :check-duplicates
echo:Moving: %newdir%\%newname%%newext%
move "%srcfile%" "%newdir%\%newname%%newext%"
goto :EOF


:check-duplicates
echo:Duplicate found
set /a "dup=1"

:check-duplicates-loop
set /a "dup+=1"
set "checkname=%newname% (%dup%)"
if exist "%newdir%\%checkname%%newext%" goto :check-duplicates-loop

set "newname=%checkname%"
goto :EOF

( 2 * b ) || ! ( 2 * b )

54

Re: Переименование mp3-файлов по tag-маске с перемещением

Rumata пишет:

Требования
ffmpeg/libav

Извиняюсь, а как установить требуемое? Скачал архив ffmpeg с официального сайта, но не заметил в нем инсталлятора.

Win10x64, AHK v1.1.25

55 (изменено: Rumata, 2016-10-19 01:10:38)

Re: Переименование mp3-файлов по tag-маске с перемещением

https://ffmpeg.zeranoe.com/builds/
Эта ссылка с официального сайта ffmpeg. Там на новой странице прямая ссылка на скачивае архива под Вашу систему (32- или 64 битная).

И там нет инсталятора. Просто распаковываете архив куда-нибудь и пользуетесь - либо указываете полный путь (что не удобно), либо описываете путь до бинарника ffmpeg.exe в переменной PATH (что удобно).

( 2 * b ) || ! ( 2 * b )

56

Re: Переименование mp3-файлов по tag-маске с перемещением

Rumata, а откуда брать libav? Понимаю, что с оф. сайта, но совсем не понимаю, что делаь с архивами без инсталляторов. ffmpeg по указанной Вами ссылке вроде бы установился.

Win10x64, AHK v1.1.25

57

Re: Переименование mp3-файлов по tag-маске с перемещением

libav - альтернатива. Достаточно ffmpeg.

( 2 * b ) || ! ( 2 * b )

58

Re: Переименование mp3-файлов по tag-маске с перемещением

Rumata пишет:

10-12 секунд на 120 файлах

Мой скрипт у меня на 7-ке делает это, как можно заметить в gif-e, в 10 раз быстрее.

59

Re: Переименование mp3-файлов по tag-маске с перемещением

Rumata, это все, что происходит после запуска скрипта. До установки ffmpeg выходила ошибка. Сейчас ошибки нет, но и файлы рядом со скриптом не переименовываются. В логе написано: The system cannot find the file specified.

http://puu.sh/rO7kx/20ce6bc00a.gif

Win10x64, AHK v1.1.25

60

Re: Переименование mp3-файлов по tag-маске с перемещением

Вам обязательно использовать консоль? Я думаю вам пригодиться утилита tag.exe Ее вполне можно обернуть в скрипт.
Если консоль не главное, советую программы:
Mp3Tag или TagScanner Их хватит за глаза.

Нас невозможно сбить с пути, нам пофигу куда идти.

61

Re: Переименование mp3-файлов по tag-маске с перемещением

Flasher, ранее тестировал Ваш скрипт с уже переименованными mp3-файлами средствами AIMP, сегодня же протестировал с еще непереименованными, заметил, что некоторые файлы хоть и перемещаются в соответствующие папки (все так же медленно), но, как оказалось, не переименовываются перед перемещением. Сценарий заканчивает свою работу не переименовав даже те файлы, что успел перенести. Мне казалось, что по идее, файлы должны переименоваться перед перемещением. Может, с этим связана некорректная работа на Windows 10?

Win10x64, AHK v1.1.25

62

Re: Переименование mp3-файлов по tag-маске с перемещением

DnsIs
Я смотрю, баянить тут уже стало в порядке вещей. Переписку хоть почитайте.

becauseim
Жду пример ключей и пару проблемных файлов.
С кнопкой разобрались?

63

Re: Переименование mp3-файлов по tag-маске с перемещением

Flasher, http://dropmefiles.com/uCAYG
В архиве лежит скрипт, в описание которого я добавил пример с ключами, который использовал. С кнопкой вроде разобрался, но ради одного скрипта не планирую использовать кнопку. Лучше привяжу запуск из адресной строки к горячей клавише посредством AHK.

Win10x64, AHK v1.1.25

64

Re: Переименование mp3-файлов по tag-маске с перемещением

becauseim
Писать всю комстроку с учётом разных способов вызова не требовалось. Я просил ключи.
Ладно. Вердикт такой. WMP, как, впрочем, и Tag.exe, не видит теги образца ID3v2.4. Я на таких ранее не тестировал.
Но удивительно то, как вы пишите, что скрипт переносит файлы без наличия тегов. В такое трудно поверить, ибо ему их некуда было бы переносить! Можно gif с тестом на залитых файлах?
Что могу предложить касаемо вычисления таких тегов. Задействовать библиотеку MediaInfo с компонентом, тогда с этим проблем не должно быть. Либо при наличии требуемых кодеков в системе можно смотреть атрибуты через GetDetailsOf. Нажмите Alt+Enter на любом из таких файлов и на вкладке "Подробно" посмотрите сводку к секции "Носитель". Если там теги?


Насчёт кнопки. Я спрашиваю не про скрипт. А про последнюю кнопку, которая давалась для упрощения тестов с Tag. А откуда в конечном счёте будет вызываться комстрока с утилитой - дело десятое. Хотя раз StEx с поддержкой горячих клавиш заработал, то не вижу смысла трогать AHK, тем более, что ещё и девушка упоминалась.
Как там со скоростями?

65 (изменено: becauseim, 2016-10-21 12:31:31)

Re: Переименование mp3-файлов по tag-маске с перемещением

Flasher, на тех файлах, что прикрепил, не сработало перемещение. Впрочем, эти файлы не были перемещены скриптом из общей массы изначально. А следующие файлы были перемещены: http://dropmefiles.com/fAQQ9

+ открыть спойлер

http://puu.sh/rQox8/57bb4a240f.gif

Нет, с Tag.exe я не разобрался. Думаю, если скрипт, как Вы упомянули, не умеет работать с данной версией тегов, буду переименовывать старым способом, но в таком случае, хотелось бы иметь сценарий, перемещающий треки в подпапки, названия которых бы брались не из тегов, а уже из переименованных файлов. Т.е. из файла "Исполнитель - Название.mp3" необходимо брать первую часть названия файла. В таком случае, я теряю лишь возможность сортировки по альбомам. И желательно, чтобы при запуске из адресной строки, если такое возможно, можно было указать корневую директорию для создания в ней папок с исполнителями и дальнейшего перемещения файлов. Например, что-то вроде этого: wscript.exe "D:\Soft\system\MP3 mover.vbs" /s:"Artist\Artist - Title" /d:" - " /c:2 /p:D:\music\sort

Win10x64, AHK v1.1.25

66

Re: Переименование mp3-файлов по tag-маске с перемещением

becauseim
Да. Пожалуй, надо было сразу предложить выложить файлы, ибо в них по части медленного перемещения и дело. Причина совсем не на поверхности. Пока думаю, как обойти.
Что касается умения скрипта работать, то прежде стоило бы прочесть и ответить на всё, что я пишу и спрашиваю, а не делать это избирательно. Не так ли?

Насчёт корневой директории, не совсем понимаю - зачем? В первом посте же речь шла о подкаталогах. Ведь всё равно придётся заходить в каталог с mp3 и проверять результат. Проще же сразу в нём всё и делать. Нет?

67

Re: Переименование mp3-файлов по tag-маске с перемещением

Flasher, по части работы скрипта vbs старался уточнить все интересующие моменты. Возможно, что-то упустил, не знаю. Корневая директория нужна, т.к. mp3-файлы будут обрабатываться из папки Downloads, где помимо вероятно созданных папок с исполнителями у меня зачастую распологаются папки из распакованных (иногда автоматически) архивов. Чтобы не приходилось вручную отделять папки с музыкой от других папок и подразумевается задание корневой директории.
Так понимаю, Вы предпочли постараться поработать над версией того же сценария, работающего со всеми типами тегов, нежели над сценарием, не привязанным к тегам каким-либо образом. Пожалуй, так было бы еще лучше. Спасибо!

Win10x64, AHK v1.1.25

68 (изменено: Malcev, 2016-10-22 00:35:28)

Re: Переименование mp3-файлов по tag-маске с перемещением

Я бы делал с помощью mediainfo.dll
На AHK 6 файлов переносит за 47/1000 секунд.
Тут я, конечно, не учел проверку файла на валидатность имени, прибавления индекса если не найдены таги.
Просто проверка скорости.

InputFolder := "D:\DropMeFiles_uCAYG"
OutputFolder := "D:\DropMeFiles_uCAYG\TEMP"
MediainfoDll := "C:\MediaInfo.dll"

a := A_TickCount
SetBatchLines -1
DllCall("LoadLibrary", Str, MediainfoDll)
Loop, Files, %InputFolder%\*.mp3
{
   file := A_LoopFileLongPath
   Media_GetTag(file)
   IfNotExist, %OutputFolder%\%Artist%
      FileCreateDir, %OutputFolder%\%Artist%
   FileMove, %file%, %OutputFolder%\%Artist%\%Artist% - %Track%.mp3
}
msgbox % A_TickCount - a


Media_GetTag(file) {
 hnd := MediaInfo_New()
 MediaInfo_Open( hnd, file )
 Global Artist := MediaInfo_Get( hnd, 0,0, "Artist", 1 )
 Global Track := MediaInfo_Get( hnd, 0,0, "Track", 1 )
 MediaInfo_Close(hnd)
 return
}

;  Video Properties - MediaInfo.Dll  www.autohotkey.com/forum/topic66500.html

MediaInfo_New() {
 Return DllCall( "mediainfo\MediaInfo" ( A_IsUnicode ? "" : "A" ) "_New" )
}

MediaInfo_Open( hnd, MediaFile ) {
 Return DllCall( "mediainfo.dll\MediaInfo" ( A_IsUnicode ? "" : "A" ) "_Open", UInt,hnd
               , Str,MediaFile, UInt )
}

MediaInfo_Get( hnd, StrK=0, StrN=0, Comm="", InfK=0, Srch=0 ) {
 Return DllCall( "mediainfo.dll\MediaInfo" ( A_IsUnicode ? "" : "A" ) "_Get", UInt,hnd
               , Int,StrK, Int,StrN, Str,Comm, Int,InfK, Int,Sech, Str )
}

MediaInfo_Close( hnd ) {
 Return DllCall( "mediainfo\MediaInfo" ( A_IsUnicode ? "" : "A" ) "_Close", UInt,hnd )
}

69

Re: Переименование mp3-файлов по tag-маске с перемещением

becauseim пишет:

Нет, с Tag.exe я не разобрался.

В чём там разбираться? По кнопкам я дал полноценное описание. Как править параметры в --sheme неясно? Что там вообще понимать? --sheme "A\A - T" - это? Это же очевидность очевидная.

becauseim пишет:

старался уточнить все интересующие моменты.

Серьезно? Я предложил библиотеку MediaInfo, Вы не отреагировали. Я просил данные из "Подробно", Вы  не ответили. Я спросил про скорость с кнопкой Tag, Вы не ответили.

becauseim пишет:

Так понимаю, Вы предпочли постараться поработать над версией того же сценария, работающего со всеми типами тегов, нежели над сценарием, не привязанным к тегам каким-либо образом.

Лучше, конечно, со всеми. В каком смысле "не привязанным"? Это вообще как?

Кстати, проблему с тормозами я определил. Проверьте, как сейчас скрипт работает.
Ключ с получателем добавил. Остальное - после ответов.

70 (изменено: becauseim, 2016-10-23 05:13:24)

Re: Переименование mp3-файлов по tag-маске с перемещением

Flasher, новая версия работает быстро. Спасибо! К сожалению, все так же пропускает ряд файлов, в моем случае, большую часть файлов.
upd.: Заметил, что у меня не работает ключ /c: для задания минимального числа для перемещения.

Tag.exe после приведенной инструкции не тестировал, т.к. вариант с ТС интересует меньше всего по упомянутым причинам. Потому не привел уточнений по его использованию. Еще одна причина: не активируется панель инструментов в ТС. Переустанавливать не стал из-за текущих тонких настроек. В "Подробно" теги не отображаются, но видны редактору тегов (AIMP).

Не привязанным к тегам - значит, что названия для папок могут браться не из тегов файла, а из его имени после переименования редактором. Файл называется "Christie Front Drive - Field.mp3", соответственно, переносится в подпапку "Christie Front Drive". Файл "Track01.mp3" никуда не переносится, т.к. нет разделителя " - ".

Malcev, спасибо! Попробую протестировать Ваш вариант.

Win10x64, AHK v1.1.25

71

Re: Переименование mp3-файлов по tag-маске с перемещением

becauseim пишет:

Заметил, что у меня не работает ключ /c: для задания минимального числа для перемещения.

Случайно строку затёр, вернул.

becauseim пишет:

т.к. вариант с ТС интересует меньше всего по упомянутым причинам.

Внимательно читаем:

Flasher пишет:

кнопку, которая давалась для упрощения тестов с Tag. А откуда в конечном счёте будет вызываться комстрока с утилитой - дело десятое.

ТС не является обязательным для постоянки, речь шла о тестах.

becauseim пишет:

Еще одна причина: не активируется панель инструментов в ТС.

В смысле? hmm

becauseim пишет:

а из его имени после переименования редактором.

Всё не так просто. В такой ситуации имя файла должно быть тождественно последнему компоненту (имени) в шаблоне, притом что в части вышестоящих папок других тегов быть не должно. Допустим, шаблон - Genre\Artist\(Year) Album\TrackNumber - Title c разделителем " - ", и из тегов есть только Artist и Title, а реальное имя "<Album> - <Title>", то как быть? И таких ситуаций достаточно можно придумать. Т.е. нужен какой-то общий алгоритм для разных схем, коли мы сошлись на универсальном средстве.

72

Re: Переименование mp3-файлов по tag-маске с перемещением

Flasher, однажды панель скрыл за ненадобностью. Теперь она не возвращается на место после установки соответствующей галочки в конфигурациях. Почему, не знаю. Пытался найти в сети решение, не нашел.
Не очень понял, в чем заключается сложность/несоответствие в создании папок на основе имен файлов, но если это не целесообразно с Вашей точки зрения, приму как должное.

Win10x64, AHK v1.1.25

73

Re: Переименование mp3-файлов по tag-маске с перемещением

becauseim
Т.е. вызов cm_VisButtonbar из космтроки ни к чему не приводит? Тогда дело в размерах.
Вызываем команду панели инструментов cm_ButtonConfig из космтроки или гл. меню и смотрим, чтобы "Размер:" был положительным, стоит брать [22+], если отмечены и "Маленькие", то [16+].

Я не пишу, что вообще нецелесообразно. Я пишу, что алгоритм должен быть общий. Например, если в схеме указано тегов больше/меньше, чем их есть в имени (например, "Artist\Album\Artist - Title" при "Исполнитель - Название.mp3") и/или в имени число разделителей (вкл. 0) не соответствует схеме, то файл не трогать. Как-то так.

74

Re: Переименование mp3-файлов по tag-маске с перемещением

Не вижу причин тянуть с ответом. Сделал так, как описал:

'•••••••••••••••••••••••••••••• VBS •••••••••••••••••••••••••••••••
' Переместить/переименовать MP3-файлы в рабочем каталоге по шаблону
'
' Условие: требуются MediaInfoActiveX.dll и MediaInfo.dll
'
' Ключи: /s:[<шаблон для перемещения/переименования>]
'        /d:[<разделитель между тегами в шаблоне, если есть>]
'        /c:<минимальное число mp3 для перемещения>  (1 по умолч.)
'        /o:[<путь назначения>]        (рабочий каталог по умолч.)
'
' В шаблоне могут участвовать следующие теги:
' TrackNumber, Year, Title, Album, Artist, Genre
'
' Примеры ключей:
' 1) /s:"TrackNumber. Title" /d:". "
' 2) /s:"Artist\Artist - Title" /d:" - " /c:2
' 3) /s:"Artist\Year - Album\TrackNumber. Title" /d:" - "
' 4) /s:"Genre\Artist\Album - Title" /d:" - " /o:C:\Music
'••••••••••••••••••••••••••••••••••••••••••••• Автор: Flasher © •••

Option Explicit: Dim Scheme, Delim, Count, oDir
Dim T, WMP, STg, ShA, MIA, FSO, R, S, Dir, Disk

With WScript.Arguments.Named
  If .Count < 2 Then Msg "Не задано ни одного ключа!", 4144
  If Not .Exists("s") Then Msg "Ключ /s: обязателен!", 4144
  Scheme = .Item("s")
  If .Exists("d") Then Delim = .Item("d") : _
  If InStr(Scheme, Delim) = 0 Then _
  Msg "В шаблоне отсутствует разделитель '" & Delim & "'!", 4144
  If .Exists("c") Then Count = .Item("c") Else Count = 0
  If .Exists("o") Then oDir  = .Item("o")
End With

Sub Msg(Text, Num)
  MsgBox Text, Num, " Переименование (перемещение) MP3     " : WScript.Quit
End Sub

T = InStrRev(Scheme, "\") : Dim RScheme
If T Then
  Dim Test : Test = InStr(Mid(Scheme, T), Delim)
  RScheme = Mid(Scheme, T) & Left(Scheme, T)
Else Count = 0 : RScheme = Scheme End If
If Count > 1 Then Dim Dic : _
Set Dic = CreateObject("Scripting.Dictionary")
Set STg = CreateObject("Scripting.Dictionary")
Set ShA = CreateObject("Shell.Application")
Set MIA = CreateObject("MediaInfo.ActiveX")
Dim Reg : Set Reg = New RegExp : Reg.Global = True
Set FSO = CreateObject("Scripting.FileSystemObject")
R = Array(-230,-225,-246,698,894,-24,-24,706,707)
S = Split(": ? * "" ; / | < >")
Dir = FSO.GetAbsolutePathName("")
If IsEmpty(oDir) Then oDir = Dir
Set Disk = ShA.NameSpace(FSO.GetDriveName(Dir))
Set Dir  = ShA.NameSpace(Dir) : Dim Items, F, Handle
Set Items = Dir.Items : Items.Filter 90304, "*.mp3"
If Items.Count = 0 Then Msg "В каталоге нет MP3-файлов!", 4144

For Each F in Split("Year TrackNumber Title Album Artist Genre")
  If InStr(RScheme, F) > 0 Then STg.Add F, ""
Next : Handle = MIA.MediaInfo_New()

Dim rPath, Arr, Check, i, n, c, Tag, RelPath, Path, BN, Ext, Name, Pr
For Each F in Items
  MIA.MediaInfo_Open Handle, F.Path : rPath = Scheme : c = 0
  Arr = Split(FSO.GetBaseName(F), Delim) : Check = 1
  For Each i in STg.Keys
    n = i
    Select Case i
      Case "Year" n = "Recorded_Date"
      Case "TrackNumber" n = "Track/Position"
    End Select
    MIA.MediaInfo_Option Handle, "Inform", "General;%" & n & "%"
    Tag = Trim(MIA.MediaInfo_Inform(Handle, 0))
    If i = "TrackNumber" Then Reg.Pattern = "^0+" : Tag = Reg.Replace(Tag, "")
    If Tag = "" And Delim <> "" Then
      If UBound(Arr) + 1 = STg.Count Then Tag = Arr(c) Else Check = 0 : Exit For
    End If
    rPath = Replace(rPath, i, Tag) : c = c + 1
  Next
  If Check Then
    For Each i in Array("[ \.\(\{-]+\\+", "\\+[ \.\)\}-]+", "\\{2,}")
      Reg.Pattern = i : rPath = Reg.Replace(rPath, "\")
    Next
    For i = 0 To 8 : rPath = Replace(rPath, S(i), ChrW(R(i))) : Next
    RelPath = Left(rPath, InStrRev(rPath, "\"))
    Path = FSO.BuildPath(oDir, RelPath)
    If (Not Test Or (Test And InStr(RelPath, Delim) > 0)) And Right(rPath, 1) <> "\" Then
      If Not FSO.FolderExists(Path) Then Disk.NewFolder(Mid(Path, 4))
      BN = FSO.GetFileName(rPath) : Ext = "." & FSO.GetExtensionName(F)
      Name = BN & Ext : c = 0 : Pr = ""
      If Len(FSO.BuildPath(Path, Name)) > 259 Then Pr = "\\?\"
      If T Then
        While FSO.FileExists(Pr & FSO.BuildPath(Path, Name))
          c = c + 1 : Name = BN & " (" & c & ")" & Ext
        Wend
      End If : FSO.GetFile(F.Path).Move Pr & FSO.BuildPath(Path, Name)
      If Count > 1 Then If Not Dic.Exists(Path) Then Dic.Add Path, ""
    End If
  End If
Next
If Count > 1 Then
  For Each I in Dic.Keys
    Set Items = ShA.NameSpace(I).Items
    Items.Filter 90304, "*.mp3"
    If Items.Count < CLng(Count) Then _
    Dir.MoveHere Items, 20 : FSO.GetFolder(I).Delete
  Next : Dic.RemoveAll
End If : Msg "Файлы переименованы/перемещены!", 4160

Придётся только это поставить.

75 (изменено: becauseim, 2016-10-25 15:41:49)

Re: Переименование mp3-файлов по tag-маске с перемещением

Flasher,
http://puu.sh/rUZwJ/cac56835af.png
Malcev, Ваш вариант создает одну папку TEMP c единственным внутри mp3-файлом с именем " - .mp3". Путь расположения MediaInfo.dll я предварительно указал.

Win10x64, AHK v1.1.25