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 Previous  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 Oct 03, 2009 10:42    Post subject: Reply with quote

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

А вот эту штуку разве не замечали раньше? К тому же с исходниками.

Честно сказать, не замечал (обрыл весь интернет, нашел утиль для работы с WCX из ком. строки, а под носом лежащее на wincmd.ru не увидел). В любом случае, как сказали уже выше, я изначально задумал выводить только значение запрошенного поля, причём вывод в консоль происходит только если соответствующее значение из колонки получено (во всех остальных случаях не выводится ничего, чтобы ошибочно не принять сообщение об ошибке за значение колонки - теперь же достаточно проанализировать ответ от утилиты - если пустая строка, значит что-то не получилось (либо указали путь не к тому плугу, либо указали путь не к тому файлу, либо неправильно ввели имя колонки, либо просто банально значение в соответствующем поле пустое, как это бывает с некоторыми тегами) во всех остальных случаях какойто вывод означает результат, так что его можно брать и подставлять куда надо. Я сперва думал всё-таки выводить немного по другому: если всё гут, то вывести
Code:
done: тут_значение_колонки

а если ошибка, то вывести
Code:
error: какая_именно_ошибка

но в этом случае пришлось бы парсить строку вывода, чтобы понять всё гут или нет, сейчас же достаточно банального сравнения ответа с пустой строкой. С другой стороны, при таком выводе вам было бы понятно, в чём ошибка, и исправить ее было бы легче.

А исходники я гляну, может перепишу свою утиль с АвтоИТа на какой нить Дельфи или С++ (будет более компактная). Кроме того, как я уже писал выше, пока что моя утиль работает только с типом ft_string (плагописатели меня поймут) во всех других случаях пока что не работает как надо (впрочем с тегами она уже сейчас работает на отлично, см. пример выше).
Добавлено:
Глянул я исходники одним глазком - как я и предполагал, его утиль тоже не будет работать со всеми плагами (впрочем, как и моя): он вызывает ContentGetValue, хотя я уже видел плаг, который не экспортирует такую функу, вместо этого он экспортирует ContentGetValueW (то есть юникодную). А в общем, мне утиль понравилась, её можно доработать добавив ещё один ключ командной строки - имя колонки, и чтобы он вывел только соответствующее значение, тогда это была бы законченная утилита со всем необходимым функционалом.


Last edited by Samwatas on Sat Oct 03, 2009 11:15; edited 3 times in total
Back to top
View user's profile Send private message
Samwatas



Joined: 12 Sep 2009
Posts: 95

Post (Separately) Posted: Sat Oct 03, 2009 10:45    Post subject: Reply with quote

Quote:
Языкам (программирования) не обучен :(

Почему же - раз батники пишете, значит уже один язык знаете :)
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 13:00    Post subject: Reply with quote

Samwatas wrote:
...утиль тоже не будет работать со всеми плагами (впрочем, как и моя): он вызывает ContentGetValue, хотя я уже видел плаг, который не экспортирует такую функу, вместо этого он экспортирует ContentGetValueW (то есть юникодную).

Так это как раз вполне логично:
Quote:
Обновлен: 6.09.2007

Вряд ли тогда уже кто-либо работал с Юникодом в плагинах к ТС.
Back to top
View user's profile Send private message
Samwatas



Joined: 12 Sep 2009
Posts: 95

Post (Separately) Posted: Sat Oct 03, 2009 13:22    Post subject: Reply with quote

Ну что ж, это дополнительный повод доработать утилитку.
Я тут подумал, а ведь некоторые плаги могут не только читать, но и писать в соответствующие поля (экспортируя функу ContentSetValue), то есть можно из ком. строки не только читать но и заполнять нужные поля (написав батник или скрипт, который например парсит текстовый файл и заполняет теги у файлов). Как вы думаете, будет ли востребована такая возможность или нет? Стоит ли вообще этим заниматься, делая утилиту более мощной, добавляя дополнительные возможности?
Back to top
View user's profile Send private message
Rodny



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

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

Quote:
Как вы думаете, будет ли востребована такая возможность или нет?
Будет, однозначно. Жаль только, что пока плагины с возможностью записи можно пересчитать по пальцам одной руки.
Back to top
View user's profile Send private message
DrShark



Joined: 21 Oct 2006
Posts: 911
Location: Kyiv, Ukraine

Post (Separately) Posted: Sat Oct 03, 2009 17:46    Post subject: Reply with quote

Samwatas wrote:
А исходники я гляну, может перепишу свою утиль с АвтоИТа
А можешь выложить исходники на AutoIt?
Здесь, кстати, хорошая подборка реализаций использования интерфейса плагинов Тотала сторонним софтом. Так что реализация на ещё одном ЯП будет там весьма кстати.
Back to top
View user's profile Send private message
Samwatas



Joined: 12 Sep 2009
Posts: 95

Post (Separately) Posted: Sat Oct 03, 2009 18:26    Post subject: Reply with quote

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



Joined: 21 Oct 2006
Posts: 911
Location: Kyiv, Ukraine

Post (Separately) Posted: Sat Oct 03, 2009 18:34    Post subject: Reply with quote

Samwatas
Кидай.
Back to top
View user's profile Send private message
Batya



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

Post (Separately) Posted: Sat Oct 03, 2009 20:14    Post subject: Reply with quote

Samwatas wrote:
Я сперва думал всё-таки выводить немного по другому

Можно ввести ключ для возможности вывода в таком виде при поиске ошибки.
_________________
Нет, я не сплю. Я просто медленно моргаю.
Back to top
View user's profile Send private message
Samwatas



Joined: 12 Sep 2009
Posts: 95

Post (Separately) Posted: Sat Oct 03, 2009 20:56    Post subject: Reply with quote

Я сейчас обдумываю концепцию новой утилиты, которая будет и читать и писать и выводить отладочную информацию и т.д.. В общем есть у меня парочка интересных идей, осталось их реализовать в коде.
Back to top
View user's profile Send private message
Lev



Joined: 02 Mar 2005
Posts: 392

Post (Separately) Posted: Mon Oct 05, 2009 16:38    Post subject: Reply with quote

Батники/скрипты перемещения файлов с поддержкой контентных плагинов также можно писать с помощью wdxInfoPacker.
Back to top
View user's profile Send private message
Tol!k



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

Post (Separately) Posted: Tue Oct 06, 2009 14:14    Post subject: Reply with quote

Обновлённый батник:
- можно перемещать файлы на другую панель или в конкретную папку;
- обрабатываются файлы с "!" в тегах;
Code:
@echo off &chcp 1251 >nul
echo Перемещает выделенные муз.файлы в папки "Artist [Year] Album\"
rem Requirements: WDX columns extractor http://upload.com.ua/get/901076644/
rem Parameters: %L
rem          or %L "%T"
rem          or %L "D:\My Music\"
rem Autor: Tol!k
setlocal enableextensions

for /f "delims=" %%f in ('sort /r %1') do (echo %%f &call :f "%%f" %2)
exit

:f
for /f "delims=" %%A in ('wdx.exe %COMMANDER_PATH%\wdx\anytag\anytag.wdx "%~1" Artist') do set "Artist=%%~A"
for /f "delims=" %%B in ('wdx.exe %COMMANDER_PATH%\wdx\anytag\anytag.wdx "%~1" Year') do set "Year=%%~B"
for /f "delims=" %%C in ('wdx.exe %COMMANDER_PATH%\wdx\anytag\anytag.wdx "%~1" Album') do set "Album=%%~C"

set "Folder=%~2%Artist% [%Year%] %Album%"
if not exist "%Folder%" md "%Folder%"
if exist "%Folder%\" move "%~1" "%Folder%\"
goto :eof


Last edited by Tol!k on Thu Oct 08, 2009 14:37; edited 1 time in total
Back to top
View user's profile Send private message
Batya



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

Post (Separately) Posted: Tue Oct 06, 2009 14:26    Post subject: Reply with quote

Lev wrote:
Батники/скрипты перемещения файлов с поддержкой контентных плагинов также можно писать с помощью wdxInfoPacker.

Это как? Через буфер с помощью CopyInfo2Clip.exe?
_________________
Нет, я не сплю. Я просто медленно моргаю.
Back to top
View user's profile Send private message
Lev



Joined: 02 Mar 2005
Posts: 392

Post (Separately) Posted: Tue Oct 06, 2009 17:09    Post subject: Reply with quote

Quote:
Это как?

wdxInfoPacker может сгенерировать любой текстовый файл с использованием имён файлов и информации из контентных плагинов. Расширение файла может задаваться. Т.е. мы можем сгенерировать батник с кучей строк типа
move "путь\имя файла" "папка с именем из тегов файла"
или скрипт с подобным содержимым. А потом запустить его вручную. Мне это было без надобности, но если надо могу попробовать накидать пример.
Back to top
View user's profile Send private message
Batya



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

Post (Separately) Posted: Tue Oct 06, 2009 17:18    Post subject: Reply with quote

Lev wrote:
wdxInfoPacker может сгенерировать любой текстовый файл с использованием имён файлов и информации из контентных плагинов.

Ааа... Ты об этом. Для меня-то вопросом является, как из скрипта заставить работать wdxInfoPacker.
_________________
Нет, я не сплю. Я просто медленно моргаю.
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 Previous  1, 2, 3  Next
Page 2 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