Переименование файлов с заменой Unicode-символов

Список разделов foobar2000 Есть вопрос!

Описание: У вас проблемы с foobar2000 и вам необходима помощь? Спрашивайте здесь!
Правила раздела: Одна тема — один вопрос или группа связанных вопросов. Обязательно формируйте внятный заголовок, максимально отражающий суть. Подробно описывайте проблему. Не забывайте указать версию плеера, название сборки, по возможности добавить скриншоты проблемы.

Сообщение #1 Intuki » 01.02.2014, 15:09

При автоматическом переименовании файлов через меню "File Operations" не поддерживаемые файловой системой символы заменяются по определенной схеме, например:

"/" на "-";
"*" на "x".

Возникло желание всегда заменять их на "_", но не могу найти подобную настройку.
Перехватить через $replace(%title%,/,_) не удается, т.к. в меню "File Operations" %title% выводится уже измененным foobar'ом.

Что упускаю? :wink:
Intuki
Автор темы
Аватара
Репутация: 17
С нами: 12 лет 4 месяца

Сообщение #2 guest » 01.02.2014, 15:15

Во-первых: при чем тут unicode?
во-вторых: не получится, имхо.
guest
Гость

Сообщение #3 postED » 01.02.2014, 17:02

В фубаре реализация такого плана без изобретений велосипеда маловероятна. А вот mp3tag справится без каких-либо проблем. Синтаксис достаточно похож на фубаровский, и есть идентичная команда $replace(string,from,to), которая также умеет работать по шаблону $replace(string,from1,to1,from2,to2,...)

Потому в mp3tag меню Преобразования -> Тег -> Имя файла (горячая клавиша Alt+1): $replace(ТЕГИ,/,_,?,_,*,_,",_)
ТЕГИ заменить на привычный для Вас шаблон, например %artist - %track% - %title%

%track% это аналог фубаровского %tracknumber%, однако при переименовании он работает в варианте 1/2/3... а не как фубар 01/02/03... Для достижения варианта fb2k вместо %track% надо подставить $num(%track%,2). Дальше думаю проблем не будет :smile:
postED M
Аватара
Откуда: Криворіжжя
Репутация: 115
С нами: 15 лет

Сообщение #4 Intuki » 01.02.2014, 17:37

Спасибо, это то, что нужно :smile:

Даже как-то жаль, что, умея так много, foobar2000 не справляется тут. :wink:
Intuki
Автор темы
Аватара
Репутация: 17
С нами: 12 лет 4 месяца

Сообщение #5 Izotop » 02.02.2014, 10:21

2Intuki,
Возможно я недопонял вопроса, но foobar умеет тоже самое что и mp3tag, если даже не больше (так как можно создавать временные переменные).
Пользовался и сам mp3tag-ом пока не научился пользовать FileOperations и Masstagger.
Может приведёте пример и попробуем вместе? :beer:
Izotop M
Аватара
Откуда: Зеленоград - Харьков
Репутация: 69
С нами: 16 лет

Сообщение #6 Yurnikos » 02.02.2014, 11:04

Izotop:Izotop
Как я понял, Intuki вёл речь об этих символах:
"/" на "-"; "*" на "x"; "&" на "_", кои заменяются ядром фу,
и не подлежат замене в ядре простому юзверю, но :
при необходимости, в готовом имени, уже можно заменять с помощью Масттаггера
Yurnikos
Гость

Сообщение #7 Intuki » 02.02.2014, 13:08

Izotop:Может приведёте пример и попробуем вместе? :beer:

:smile:
Скриншот этого действа:

example.png


На нем видно, что с "*" я погорячился, задуманное получается, проблема остается в том, как побороть слэш :wink:
Если подскажете, буду очень рад!
Intuki
Автор темы
Аватара
Репутация: 17
С нами: 12 лет 4 месяца

Сообщение #8 Nikolaich » 02.02.2014, 13:25

Intuki:проблема остается в том, как побороть слэш
а на что оного заменить хотел-бы?
Nikolaich M
Откуда: Пермь
Репутация: 16
С нами: 15 лет 6 месяцев

Сообщение #9 Intuki » 02.02.2014, 13:39

Nikolaich:а на что оного заменить хотел-бы?
foobar2000 автоматически "/" меняет на "-" в именах файлов, хочу заменить на "_".
Intuki
Автор темы
Аватара
Репутация: 17
С нами: 12 лет 4 месяца

Сообщение #10 Izotop » 02.02.2014, 14:56

2Intuki,
Давайте попробуем разобраться с тем, что Вы выполняете:
По описанию и скриншоту Вашему я вижу что Вы берете тег %title%, заменяете в нем * на _ , / на _ и вставляете в ИМЯ ФАЙЛА (для foobar это тег %filename%)

Верно я понимаю?
Если да, то чтобы foobar понял Вас, необходимо проверяемые символы взять в одинарные кавычки
Пример:
Код: Выделить всё
$replace(%title%,'*',_,'/',_)
будет выполнять , то чего Вы стремились добиться.
Если я неверно Вас понял, то приведите пример тегов файла, имени файла и вариант, который Вы хотите получить в результате манипуляций :) :beer:
Izotop M
Аватара
Откуда: Зеленоград - Харьков
Репутация: 69
С нами: 16 лет

Сообщение #11 Nikolaich » 02.02.2014, 15:07

Intuki:foobar2000 автоматически "/" меняет на "-" в именах файлов, хочу заменить на "_".
уже после переименования фу, в имени файла можно, дополнительно, заменить "-" на "_", это несложно!
А, интересно, в каких это именах файлов бывают "/" ?
Это бывает только в тегах! и уже по тегам меняются имена файлов!
соответственно, сначала в тегах нужно заменить "/" и уже после, переименовать файл.
$replace(%имя тега%,'/','_'), я предпочитаю в теге %title%, если таковой состоит из двух названий,
заменять "/" на "; " Аналогично для тега %artist%: $replace(%artist%,'/','; ')
Последний раз редактировалось Nikolaich 02.02.2014, 15:52, всего редактировалось 1 раз.
Nikolaich M
Откуда: Пермь
Репутация: 16
С нами: 15 лет 6 месяцев

Сообщение #12 Intuki » 02.02.2014, 15:39

Izotop:По описанию и скриншоту Вашему я вижу что Вы берете тег %title%, заменяете в нем * на _ , / на _ и вставляете в ИМЯ ФАЙЛА (для foobar это тег %filename%)
Все верно. :smile:

Есть трек:
%title% = Frgt/10
Задача в получении для него:
%filename% = Frgt_10

Код: Выделить всё
$replace(%title%,'*',_,'/',_)
Так не получится, здесь нужно что-то более хитрое, если вообще возможно. :wink:
Intuki
Автор темы
Аватара
Репутация: 17
С нами: 12 лет 4 месяца

Сообщение #13 Nikolaich » 02.02.2014, 16:01

Intuki:Так не получится,
всё верно, получится так, как ты задумал, только оба '*' и '/', заменятся на ",_,"
Nikolaich M
Откуда: Пермь
Репутация: 16
С нами: 15 лет 6 месяцев

Сообщение #14 Izotop » 02.02.2014, 18:13

Для того чтобы всё получилось используем Masstagger:
1) выбираем трек(-и) для редактирования
2) ПКМ на выделенном(-ых) --> Tagging --> Manage Scripts
3) Add в левой части окна --> Format value from other fields...
4) в Destination field name:
Код: Выделить всё
FILENAME
в Formatting pattern:
Код: Выделить всё
$replace(%artist%,'/',_)

Проверяем в правой части окна что всё верно и :beer:
Отпишитесь с результатом ;)

Далее рекомендую назвать и сохранить этот скрипт в левой нижней части окна и назначить ему Hotkey.
Детальнее об этом взгляните в этом сообщении после слова "Совет:"
А ещё почитайте темку Скрипты для масстаггера
Izotop M
Аватара
Откуда: Зеленоград - Харьков
Репутация: 69
С нами: 16 лет

Сообщение #15 Intuki » 02.02.2014, 18:39

Izotop:Masstagger

А поправить имя файла он может? Просто так он заносит только значение в кастомный тег :smile:

Спойлер
properties.png
properties.png (11.28 КБ) Просмотров: 2903
Intuki
Автор темы
Аватара
Репутация: 17
С нами: 12 лет 4 месяца

Сообщение #16 Izotop » 02.02.2014, 20:16

Intuki,
Вы правы.
Сделать можно только с помощью ухищрения:
1) создаем с помощью Масстеггера тег с произвольным именем (например TEMP), в который вписываем $replace(%title%,'/',_), сохраняем этот скрипт и обзываем его (например Temp1), вешаем этот скрипт на Hotkey (например на цифру "1");
2) в File Operations --> File name pattern: вписываем %TEMP% , сохраняем этот скрипт и обзываем его (например Temp2), вешаем этот скрипт на Hotkey (например на цифру "2");
3) удаляем с помощью Масстеггера тег, заданный в первом пункте (в нашем случае тег TEMP)
описание как удалить тег %TEMP% с помощью Masstagger
Tagging --> Manage Scripts --> "Add" в левой части окна --> Remove field...
Select field to remove: TEMP

, сохраняем этот скрипт и обзываем его (например Temp3), вешаем этот скрипт на Hotkey (например на цифру "3").

В итоге:
в результате действия первого скрипта мы получаем в файле тег TEMP с значением, которое заменило символ "/" на "_"
второй скрипт переносит тег TEMP в ИМЯ ФАЙЛА
третий скрипт удаляет временный тег TEMP

Теперь выбрав трек(-и) для переименования необходимо последовательно нажать: 1, 2, 3 и мы получаем желаемый результат с помощью нажатия 3-х циферок :beer: :beer: :beer:
Izotop M
Аватара
Откуда: Зеленоград - Харьков
Репутация: 69
С нами: 16 лет

Сообщение #17 Intuki » 02.02.2014, 20:36

Izotop, спасибо за участие в проблеме! Воспользуюсь советом, ведь это лучше использования дополнительной программы :smile:
Intuki
Автор темы
Аватара
Репутация: 17
С нами: 12 лет 4 месяца

Сообщение #18 Izotop » 02.02.2014, 20:53

Ну получилось всё прописать то?
:oops:
А то я, после перечитывания моего предыдущего поста, подумал, что слишком уж замороченно в описании получилось... :oops:
:smile:
Izotop M
Аватара
Откуда: Зеленоград - Харьков
Репутация: 69
С нами: 16 лет

Сообщение #19 Intuki » 02.02.2014, 21:01

Да, оно работает, спасибо :smile:
Intuki
Автор темы
Аватара
Репутация: 17
С нами: 12 лет 4 месяца


Вернуться в Есть вопрос!