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 

Сортировка mp3 по каталогам с учётом id3 тегов
Goto page 1, 2, 3  Next
 
Post new topic   Reply to topic    Total Commander Forum Index -> Автоматизация Total Commander printer-friendly view
View previous topic :: View next topic  
Author Message
Samwatas



Joined: 12 Sep 2009
Posts: 95

Post (Separately) Posted: Sat Sep 12, 2009 21:08    Post subject: Сортировка mp3 по каталогам с учётом id3 тегов Reply with quote

Есть ли какая-нибудь утилита, типа xxcopy, которая могла бы выдирать из файла теги в переменные типа %Artist% и т.д. Представьте себе папку unsorted_music , в которой навалено дофига mp3 файлов (у которых все теги прописаны как положено) тогда сортировка их по папкам выполнялась одной строчкой батника, что-то типа такого:
for c:\unsorted_music %%a in (*.mp3) do supermove %%a c:\sorted_music\%Artist%\%Year%-%Album%\%%a
то есть для каждого файла утилитой supermove вычислялась бы папка \%Artist%\%Year%-%Album%\ в которую он и ложился бы.
Странно, что до сих пор такой вопрос не поднимался (неужели все сортируют свои файлы вручную?). А ещё лучше написать архиваторный плагин (я думаю это был бы самый убойный плагин и Гислер дал бы за такой плаг не меньше 2 лицензий Very Happy ) который бы работал с контентными плагами ( как superWDX). Тогда можно было бы вытворять в тотале фантастические вещи, например сортировка кучи файлов в каталоги по дате создания строчкой типа \[=tc.creationdate]\%N
где [=tc.creationdate] плагин заменял бы на соответствующее значение из колонки. Или вышеозначенная задача решалась бы строчкой типа \[=anytag.Artist]\[=anytag.Year]-[=anytag.Album]\%N
А если сюда прикрутить регэкспы, то все остальные файл-менеджеры просто тихо курили бы в сторонке, завидуя Тоталу.
Неужели до такого пока никто не додумался, или я просто не знаю об уже существующем плаге?
Иначе мне придется писать скрипт на AutoIt (там возможно такое сделать).
Back to top
View user's profile Send private message
Rodny



Joined: 24 Jan 2007
Posts: 949
Location: Могилёв, Беларусь

Post (Separately) Posted: Sun Sep 13, 2009 01:45    Post subject: Reply with quote

Раз
Два
Back to top
View user's profile Send private message
Samwatas



Joined: 12 Sep 2009
Posts: 95

Post (Separately) Posted: Sun Sep 13, 2009 07:54    Post subject: Reply with quote

Спасибо, конечно, но я уже воспользовался программой TagRename (Сперва я думал запрячь для этого дела утилиту XXCOPY (у нее ведь много опций копирования), однако она тоже к сожалению не понимает теги и в справке о таких возможностях не упоминается).
Тем не менее, судя по тому, что подобные вопросы возникают, я думаю что подобный плаг был бы востребованным. У него быпи бы очень большие возможности, бОльшая степень автоматизации (чем у скриптов) ну и работа с бОльшим количеством файлов (в то время, как утилиты типа TagRename работают только с музыкой). Приведу ещё пару примеров использования такого виртуального плага (со скриптовым языком и регэкспами): допустим у нас есть каталог, в котором свалено дофига фильмов (как пример) и мы хотим выделить широкоэкранные фильмы в отдельную папку - пишем что-то подобное такой строчке:
If (1.5 < %Ratio% < 1.9) in %N Then copy to с:\Широкоэкранные фильмы\%N (это как возможный пример синтаксиса скриптового языка)
Если ратио нельзя извлечь, а только ширину и высоту кадра, то соответственно заменяем %Ratio% на (%Wide%)/(%High%) ну или типа того. Или другой пример с этой же папкой фильмов - мы хотим например выделить в отдельную папку фильмы с низким разрешением (чтобы удалить низкокачественный мусор) - пишем строчку:
If (%High% < 300) in %N Then copy to с:\Shit Movies\%N
Так можно рассортировывать изображения, музыку, фильмы и т.д.
То есть по сути это мог бы быть плаг, объединяющий возможности Тоталовских окон поиска (Alt+F7) и переименования (Ctrl+M) c примесью скриптового языка, доступа к контентным плагам (как в вышеупомянутых окнах) и возможностью ПЕРЕМЕЩЕНИЯ файлов по заданным правилам (раскидывание и сортировка по каталогам).
Кстати, уважаемые скриптописатели (cmd и vbs) - а ваши скрипты могут получать данные из контентных плагов? Ну в командной строке понятно, что нет, а вот как насчёт vbs? Если нет, то поле деятельности скриптов сильно сужается, а если да, то это дает большие возможности.
Back to top
View user's profile Send private message
Batya



Joined: 15 Dec 2004
Posts: 2218
Location: Москва, Россия

Post (Separately) Posted: Mon Sep 14, 2009 09:40    Post subject: Reply with quote

Samwatas wrote:
То есть по сути это мог бы быть плаг, объединяющий возможности Тоталовских окон поиска (Alt+F7) и переименования (Ctrl+M)

А что мешает выполнять требуемое именно в два приведённых шага (сначала поиск, а потом перемещение\переименование)?
Неужели сортировка выполняется настолько часто, что необходимо это делать именно в один этап?
_________________
Нет, я не сплю. Я просто медленно моргаю.
Back to top
View user's profile Send private message
Samwatas



Joined: 12 Sep 2009
Posts: 95

Post (Separately) Posted: Mon Sep 14, 2009 19:27    Post subject: Reply with quote

Так ведь проблема как раз в том, что диалог переименования называется именно "переименование" а не "переименование и перемещение". Не умеет он к сожалению создавать папки . :(
Поэтому сделать это не удастся ни в 2 ни в 3 ни даже в 4 шага :cry: .
Что касается частоты сортировки - раньше проблема так остро не стояла, но сейчас брат качает музыку большими объемами (естественно качалка ложит всё аккуратно в одну папочку) а потом вручную сортировать несколько сотен файлов как-то не очень хочется.
Поэтому я подумал, может создать плаг, который бы решал похожие задачи (вполне возможно что добрая половина вопросов, возникающих в этом форуме и решаемая скриптами (и то не всегда - например мой случай) решалась бы именно одним плагом, а если быть точнее, то одной-двумя строчками в окне плага). Мне кажется, это могло бы для начала выглядеть так:
Плаг работает как посредник между Тоталом (а точнее его контентными плагами) и командной строкой.
Например, выделили файлы и вызвали окно плага, в котором написали copy %N с:\[=anytag.Artist]\[=anytag.Year]-[=anytag.Album]\%N
Плаг парсит эту строку и выделяет все обращения к контентным плагам. Потом начинает перебирать выделенные файлы и ДЛЯ КАЖДОГО файла выполняет указанную строчку в виндовой консоли (CMD) предварительно подставляя вместо [=anytag.Artist] соответствующие значения (тут можно предусмотреть ситуацию, когда контентный плаг вернул пустую строку - в таких случаях её можно заменять строкой взятой из файла настроек нашего суперплага, например "Empty"). Если сюда прикрутить регэкспы (правда я не представляю, как это должно выглядеть в конкретной реализации), то возможности могут ещё расшириться.
http://forum.wincmd.ru/viewtopic.php?t=12376
http://forum.wincmd.ru/viewtopic.php?t=12327
http://forum.wincmd.ru/viewtopic.php?t=11819
http://forum.wincmd.ru/viewtopic.php?t=12419
http://forum.wincmd.ru/viewtopic.php?t=9481
http://forum.wincmd.ru/viewtopic.php?t=11793
а особенно http://forum.wincmd.ru/viewtopic.php?t=11995 (Batya, узнаете?)
и т.д. Это не полный список задач, которые вероятно смог бы решить данный плаг (есс-но в большинстве случаев в расширенном варианте с регэкспами и т.д.).
А вы как думаете?
Back to top
View user's profile Send private message
Batya



Joined: 15 Dec 2004
Posts: 2218
Location: Москва, Россия

Post (Separately) Posted: Tue Sep 15, 2009 11:12    Post subject: Reply with quote

Samwatas wrote:
Например, выделили файлы и вызвали окно плага, в котором написали copy %N с:\[=anytag.Artist]\[=anytag.Year]-[=anytag.Album]\%N

Я что-то похожее раньше пытался предлагать через введение специальных параметров для кнопок\команд TC - Предложение - новая концепция специальных параметров.
Только там я делал упор на формирование новых файлов с определённым содержимым по шаблону, а не формирование нового имени\пути, как у тебя. Но если бы та концепция была реализована, то её можно было бы применить и для твоего случая
Но что-то никто не вдохновился SadSadSad
_________________
Нет, я не сплю. Я просто медленно моргаю.
Back to top
View user's profile Send private message
JayK



Joined: 04 Mar 2008
Posts: 39

Post (Separately) Posted: Fri Sep 18, 2009 17:46    Post subject: Reply with quote

J River Media center отлично справляется с этой задачей... причем не только музыку но и документы и картинки...
Back to top
View user's profile Send private message
Samwatas



Joined: 12 Sep 2009
Posts: 95

Post (Separately) Posted: Fri Sep 18, 2009 19:23    Post subject: Reply with quote

Речь идет не о сторонних платных утилитах (с изначально ограниченными возможностями) а о плагине для Тотала, который позволял бы выполнять различные задачи, связанные с автоматизацией (путём скриптового языка с интеграцией в сам тотал, а точнее с доступом к его внутренним переменным и другим плагам, в первую очередь контентным). Это позволило бы решать если не все, то большинство возникающих здесь задач при помощи пары строчек в командной строке этого плага.
В том числе он мог бы использоваться для формирования
Quote:
новых файлов с определённым содержимым по шаблону

как частный случай применения (но реально его возможности были бы шире - вплоть до поиска дубликатов и удаления по определённым условиям (например по дате - удалить старее, или по длине имени файла - удалить более длинный, тут могут быть разные возможности, которых нет в стандартном поиске дубликатов).
Back to top
View user's profile Send private message
Samwatas



Joined: 12 Sep 2009
Posts: 95

Post (Separately) Posted: Fri Oct 02, 2009 19:21    Post subject: Reply with quote

В общем, не выдержал и наваял консольную утилитку для получения информации из wdx плагинов. Формат вызова такой:
Code:
c:\wdx.exe "c:\totalcmd\plugins\wdHash\wdHash.wdx" "c:\example.txt" CRC32

Первым параметром указываем путь к нужному плагину, вторым параметром файл, свойства которого мы хотим получить, и третим параметром имя колонки, значение которой нас интересует. Возвращается значение колонки, если оно есть, во всех остальных случаях ничего не возвращается (если поле пустое, плаг не поддерживает данный файл, передан путь к несуществующему плагу или файлу, или передано название несуществующей колонки и т.д.).
Немножко погонял на парочке плагов, вроде работает (кстати, заодно обнаружил глюк в плаге wdHash - неправильно рассчитывается CRC32, остальные типа SHA1 считаются верно). Из наших глубокоуважаемых скриптописателей никому не интересно потестить? Я думаю, применение ей можно найти как просто в батниках, так и в VB-скриптах. Заодно и потестить можно поглубже.
Это кстати было мне навеяно утилей KaKeeware cmdTotal (которая работает с WCX - плагами из командной строки), вот я и подумал: "А я чем хуже?". Взял СДК по контентным плагам с сайта Гислера и в AutoIt3 набросал утиль за два дня.
Скажите только, это кому-нибудь интересно, стоит выкладывать?
Back to top
View user's profile Send private message
Lev



Joined: 02 Mar 2005
Posts: 392

Post (Separately) Posted: Fri Oct 02, 2009 19:55    Post subject: Reply with quote

Имхо, лучше в отдельной теме.
Для скриптов было бы интересно оформление в виде ActiveX, чтобы не возиться с WshShell.Exec, StdOut...
Back to top
View user's profile Send private message
Tol!k



Joined: 01 Apr 2008
Posts: 1727
Location: Арзамас

Post (Separately) Posted: Fri Oct 02, 2009 20:34    Post subject: Reply with quote

Samwatas
WDX в батниках — это очень интересно, выкладывать обязательно
Back to top
View user's profile Send private message
Samwatas



Joined: 12 Sep 2009
Posts: 95

Post (Separately) Posted: Fri Oct 02, 2009 20:55    Post subject: Reply with quote

Выложить я могу, но я тут посмотрел работу с другими плагами (кроме тестировавшегося wdHash) и пока не всё так радостно (то есть как я понял утиль пока работает с плагами, которые выдают строковые переменные) с остальными, которые выдают другие типы (например числовые) пока выдает мусор (проверял на media.WDX), то есть тут нужно дорабатывать, чем я и планирую заняться. Если интересно посмотреть на мою первую сырую версию, то пожалуйста: http://upload.com.ua/get/901076644/
Запуск без параметров (или с количеством параметров отличным от трёх) покажет кратенькую справку (там я использовал английский язык, ну так, на дальнюю перспективу :D , так что не пугайтесь, там в принципе всё и так понятно).
Пока имеет смысл тестировать на плагах с текстовым выводом. Да, и еще - название колонок нужно вводить так: смотрите в тотале, например, [=anytag.Album] - вводить третьим параметром нужно Album.
В общем, думаю, разберетесь. Пишите о впечатлениях :) .
Back to top
View user's profile Send private message
Volniy



Joined: 15 Dec 2004
Posts: 585
Location: Местный

Post (Separately) Posted: Sat Oct 03, 2009 01:11    Post subject: Reply with quote

Tol!k wrote:
WDX в батниках — это очень интересно

А вот эту штуку разве не замечали раньше? К тому же с исходниками.
Back to top
View user's profile Send private message
Tol!k



Joined: 01 Apr 2008
Posts: 1727
Location: Арзамас

Post (Separately) Posted: Sat Oct 03, 2009 07:11    Post subject: Reply with quote

Volniy
Опа. Я думал штука с GUI как WDX Guide. Но wdx.exe уже лучше, т.к. выводит только нужное, а вывод wdxtest.exe
Code:
 2: Album: 'Celldweller (FiXT Remix Compilation v1.0)'
 3: Artist: 'Celldweller'
ещё обработать нужно.
Quote:
К тому же с исходниками.
Языкам (программирования) не обучен Sad
Back to top
View user's profile Send private message
Tol!k



Joined: 01 Apr 2008
Posts: 1727
Location: Арзамас

Post (Separately) Posted: Sat Oct 03, 2009 09:16    Post subject: Reply with quote

Обновлённый батник

Last edited by Tol!k on Tue Oct 06, 2009 14:15; edited 1 time in total
Back to top
View user's profile Send private message
Display posts from previous:   
Post new topic   Reply to topic    Total Commander Forum Index -> Автоматизация Total Commander All times are GMT + 4 Hours
Goto page 1, 2, 3  Next
Page 1 of 3

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum


Powered by phpBB © 2001, 2005 phpBB Group