Групповое переименование

Обсуждение вопросов автоматизации Total Commander с помощью сторонних программ и скриптовых технологий.

Модераторы: Avada, CaptainFlint, Nik, d-view, Моторокер

BeardFury78
Сообщения: 213
Зарегистрирован: Чт авг 25, 2016 05:24

Сообщение BeardFury78 »

Flasher
Если вы про этот случай, то скрипт тоже переименовывает. И переименовывает другие файлы при длине пути исходного файла от 260+ символов, так что и они тоже получают длинные названия.
Аватара пользователя
Flasher
Сообщения: 14229
Зарегистрирован: Пт ноя 06, 2009 00:33
Откуда: Москва

Сообщение Flasher »

BeardFury78
Ну, в общем-то да. Там папки в таком пути возвращаются в коротком виде. Правда при путях родителей 260+ это не сработает.
Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.
BeardFury78
Сообщения: 213
Зарегистрирован: Чт авг 25, 2016 05:24

Сообщение BeardFury78 »

Там папки в таком пути возвращаются в коротком виде.
Т.е. виртуально, только для скрипта? Просто названия папок остаются такими же как были.
Правда при путях родителей 260+ это не сработает.
Думаю, мне такой сценарий не грозит :)
Аватара пользователя
Flasher
Сообщения: 14229
Зарегистрирован: Пт ноя 06, 2009 00:33
Откуда: Москва

Сообщение Flasher »

BeardFury78 писал(а):только для скрипта?
Конечно.
BeardFury78 писал(а):Просто названия папок остаются такими же как были.
А они и не затрагиваются.
BeardFury78 писал(а):Думаю, мне такой сценарий не грозит :)
И хорошо. Я бы мог и это обойти, просто скорость прилично снизится.
Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.
BeardFury78
Сообщения: 213
Зарегистрирован: Чт авг 25, 2016 05:24

Сообщение BeardFury78 »

Flasher
Да не надо, у меня вообще нет структур папок, чьи родительские папки имеют пути больше 260+ символов.
Аватара пользователя
Flasher
Сообщения: 14229
Зарегистрирован: Пт ноя 06, 2009 00:33
Откуда: Москва

Сообщение Flasher »

BeardFury78
Структур файлов, по-видимому. ;)
Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.
Totas
Сообщения: 24
Зарегистрирован: Сб сен 05, 2015 07:54

Заглавные буквы до ближайшего тире

Сообщение Totas »

У меня масса альбомов надписанных как попало (без учета регистра). Мне нужно чтоб имя исполнителя было заглавными буквами, а название альбома (что после тире), как в предложениях (можно и с первыми буквами заглавными). Пример превращения 1-го во 2-е:

аллА пУгачева - ПЕРвая люБОВЬ
АЛЛА ПУГАЧЕВА - Первая любовь

Словом, как сделать прописные буквы до ближайшего тире?
Аватара пользователя
Avada
Сообщения: 10541
Зарегистрирован: Пт авг 01, 2008 16:17
Откуда: Россия, Саратов

Сообщение Avada »

Totas
Опять поиск сломался? :wink:
Прежде чем лезть в автоматизацию, следовало просмотреть тему, где рассматривается стандартный функционал инструмента группового переименования. Отсюда и до результирующего скрипта. Ничего не напоминает? И вот это советую вспомнить.
Замечание за нарушение правил форума.
Даже самая богатая фантазия
Не представит себе наши безобразия.
sa
Сообщения: 2758
Зарегистрирован: Ср апр 29, 2009 18:56

Сообщение sa »

Totas
Можно использовать Script Content Plugin в сочетании с инструментом группового переименования в тотале (Ctrl+M).
В папке плагина создать Ren_UCase.vbs:

Код: Выделить всё

N=InStr(filename,"-")
If N>0 Then content=UCase(Left(filename,N+2)) & LCase(Mid(filename,N+3)) else content=filename
Настроить ini-файл плагина:

Код: Выделить всё

[Script]
Section=Ren_UCase
[Ren_UCase]
LongName=0
ParseDirs=1
Script=Ren_UCase.vbs
В тотале выделить альбомы, вызвать инструмент группового переименования, где в качестве маски для имени файла указать [=script.Result], для расширения не указывать ничего.
BeardFury78
Сообщения: 213
Зарегистрирован: Чт авг 25, 2016 05:24

Сообщение BeardFury78 »

Flasher
Опять появилась просьба. Это по поводу этого скрипта добавления описаний к именам групповых файлов. Есть такие файлы примерно такого вида:
22339157288_1 some words.jpg
22339157288_2.jpg
22339157288_3.jpg
22339157288_4.jpg
22857713006_1 some phrases.jpg
22857713006_2.jpg
22857713006_3.jpg
22857713006_4.jpg
Обнаружил, что если запустить скрипт, то они переименовываются вот так:
22339157288_1 some words.jpg
22339157288_2 some words.jpg
22339157288_3 some words.jpg
22339157288_4 some words.jpg
22857713006_1 some phrases.jpg
22857713006_2 some words.jpg
22857713006_3 some words.jpg
22857713006_4 some words.jpg
То есть, первое описание добавляется к именам других групп, за исключением файлов, которые уже имеют описания. Еще обнаружил, что это продолжается вплоть до того, как первая цифра в именах файлов сменяется на другую, а затем скрипт берет другое описание у первого файла с другой цифрой в начале названия и именует дальше файлы этим описанием, пока очередь не доходит до файла с третьей цифрой в начале навзания и так далее. Пример:
22330174548_1 some words.jpg
22330174548_2.jpg
22330174548_3.jpg
22330174548_4.jpg
29000509794_1 some phrases.jpg
29000509794_2.jpg
29000509794_4.jpg
29000509794_7.jpg
30822924938_1 some sentences.gif
30822924938_2.gif
30822924938_3.gif
30822924938_4.gif
39765039192_1 some words2.jpg
39765039192_2.jpg
39765039192_3.jpg
39765039192_4.jpg
40493850061_1 some words3.jpg
40493850061_2.jpg
40493850061_3.jpg
40493850061_5.jpg
40698349031_1 some phrases2.jpg
40698349031_2.jpg
40698349031_3.jpg
40698349031_4.jpg
После запуска скрипта они переименуются так:
22330174548_1 some words.jpg
22330174548_2 some words.jpg
22330174548_3 some words.jpg
22330174548_4 some words.jpg
29000509794_1 some phrases.jpg
29000509794_2 some words.jpg
29000509794_4 some words.jpg
29000509794_7 some words.jpg
30822924938_1 some sentences.gif
30822924938_2 some sentences.gif
30822924938_3 some sentences.gif
30822924938_4 some sentences.gif
39765039192_1 some words2.jpg
39765039192_2 some sentences.jpg
39765039192_3 some sentences.jpg
39765039192_4 some sentences.jpg
40493850061_1 some words3.jpg
40493850061_2 some words3.jpg
40493850061_3 some words3.jpg
40493850061_5 some words3.jpg
40698349031_1 some phrases2.jpg
40698349031_2 some words3.jpg
40698349031_3 some words3.jpg
40698349031_4 some words3.jpg
Решил самостоятельно внести в скрипт для этого случая вот этот регэксп:
Set Rgx = New RegExp : Rgx.Pattern = "^\d+_\d+\.[A-z]{1,4}$"
Set Reg = New RegExp : Reg.Pattern = "^(\d+)_\d+( .+\.)[A-z]{1,4}$"
Но они попрежнему именуются так, как я описал выше. Вроде регэксп правильный (в notepad++ правильно помечает нужные файлы), но скрипт неправильно переименовывает файлы, пробовал удалить старый регэксп из скрипта, не помогло. Подскажите, пожалуйста, что нужно внести в скрипт, чтобы он правильно переименовал эти файлы? И желательно чтобы при этом он продолжал работать с файлами вроде таких:
msos7dmnzY1qdjjbao1_1280 some words.jpg
msos7dmnzY1qdjjbao2_1280.jpg
msos7dmnzY1qdjjbao4_1280.jpg
msos7dmnzY1qdjjbao5_1280.jpg
msos7dmnzY1qdjjbao6_1280.jpg
А если это невозможно, тогда достаточно просто подсказать нужную правку, чтобы я смог сделать второй вариант скрипта и повесить на тулбар. Спасибо!
Аватара пользователя
Flasher
Сообщения: 14229
Зарегистрирован: Пт ноя 06, 2009 00:33
Откуда: Москва

Сообщение Flasher »

BeardFury78
Конечно, совместить невозможно, т.к. в исходном случае мы рассматривали совпадения до первого числа (счётчика), а сейчас это совпадение фактически и является числом. Чтобы это заработало для нового случая, нужно в 13-й строке убрать первый '\d+'.
Чтобы не плодить скрипты, достаточно в приведённых строках регулярки с кавычками заменить на WSH.Arguments(0) и WSH.Arguments(1) соответственно, задавая их уже в качестве 1-го и 2-го параметров.
Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.
Dimsok
Сообщения: 664
Зарегистрирован: Вс авг 17, 2014 00:45

Сообщение Dimsok »

Имеются файлы вида:
bathbut 1.png
bathrobe 2.png
bathrobe 17.png
bathrobe 68.png
bathrobe 92.png
sponge 50.png
sponge 85.png
sponge 167.png
sponge 250.png
sponge 251.png

Как их перенумеровать? bathrome 1,2,3, sponge 1,2,3 и т.п. Ключ же [C] в полях поиска и замены не действует.
sa
Сообщения: 2758
Зарегистрирован: Ср апр 29, 2009 18:56

Сообщение sa »

Dimsok
В ИГП сначала Найти: (.*) (.*) и Заменить на: $1 1.png с добавленной галкой для Рег. выраж. Далее Выполнить с согласием на автопереименование, связанное с одинаковыми именами.
Затем снова войти в ИГП, Найти: 1 (|) и Заменить на: <Пусто> без галки для Рег. выраж.
Последний раз редактировалось sa Ср сен 20, 2017 12:13, всего редактировалось 2 раза.
Dimsok
Сообщения: 664
Зарегистрирован: Вс авг 17, 2014 00:45

Сообщение Dimsok »

Со скобками я уж разобрался, только в некоторых случаях надо счётчиком потом, потому что конфликт имён. Только у меня сложней вышло: (.*)(\((.*)\)) заменить на $1 $3.

Добавлено спустя 11 минут:
В ИГП сначала Найти: (.*) (.*) и Заменить на: $1.png
Только так отсекаются крайние слова. Например "buildings of different styles" становится "buildings of different". Надо чтоб только цифры на конце. Чё-нить вроде \d$, но чтоб для любого количества цифр.

Добавлено спустя 3 минуты:
Выполнить с согласием на автопереименование, связанное с одинаковыми именами.
А это где? Это случаем не в 9 версии появилось?
Аватара пользователя
Avada
Сообщения: 10541
Зарегистрирован: Пт авг 01, 2008 16:17
Откуда: Россия, Саратов

Сообщение Avada »

Dimsok
Да, именно там и появилось.
Даже самая богатая фантазия
Не представит себе наши безобразия.
Ответить