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

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

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

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

Сообщение Flasher »

sa писал(а):
Iori писал(а):в виде кнопки куда удобнее.
Как интересно выдёргиваются слова из контекста:
Iori писал(а):Можно этого добится через инструмент группового переименования, но по мне скрипт в виде кнопки куда удобнее.
Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.
sa
Сообщения: 2758
Зарегистрирован: Ср апр 29, 2009 18:56

Сообщение sa »

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

Сообщение Flasher »

sa
А как без регулярных выражений или применения скрипта это сделать в ИГП (хоть при наличии кнопки, хоть без неё)?
Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.
sa
Сообщения: 2758
Зарегистрирован: Ср апр 29, 2009 18:56

Сообщение sa »

Flasher
Я про
без регулярных выражений
не говорил.
Аватара пользователя
Flasher
Сообщения: 14229
Зарегистрирован: Пт ноя 06, 2009 00:33
Откуда: Москва

Сообщение Flasher »

sa
Ты предложил свою кнопку после вопросов
Iori писал(а):А как вы указали пробел в ...
А где можно почитать что это всё значит?
, поэтому
sa писал(а):Я подумал, что в ИГП автору запроса не достаёт единственной кнопки
с этой ситуацией никак не вяжется.
Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.
Iori
Сообщения: 552
Зарегистрирован: Ср апр 25, 2012 20:33

Сообщение Iori »

sa

Спасибо за кнопку (TCFS2), но скрипт от Flasher мне очень подходит. Плюс его можно под себя подгонять.

Кстати, об этом. :)
Пытался добавить в строку поиска знак подчёркивания '_', но почему то знак подчёркивания на точку не поменялся.

файл fast_raw_file_copier_portable.zip меняется на fast_raw_file_copier_portable (1).zip

Добавлял как (\w) и как (\w+)

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

%WL ([^\(|^\[])(\s+)(\w+)((?!\)|\])) $1.$3
]

Я вообще на правильном пути?
Аватара пользователя
Flasher
Сообщения: 14229
Зарегистрирован: Пт ноя 06, 2009 00:33
Откуда: Москва

Сообщение Flasher »

Iori
Не на правильном. Для начала что такое \w? Смотрим справку. Знак подчёркивания не является спецсимволом, поэтому он прописывается напрямую.
И что именно требуется? Просто менять знак подчёркивания на точку?
Дык так и пишем: %WL _ .
Ну, хоть немного почитать-то в справке можно? Там же всё по полочкам расписано и про спецсимволы и шаблоны (они же - подвыражения). И сервисы я же не просто так привёл.
Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.
Iori
Сообщения: 552
Зарегистрирован: Ср апр 25, 2012 20:33

Сообщение Iori »

Flasher

Я брал информацию отсюда http://flint-inc.ru/tchelp/#reg_ex
Наверно я не так понял.
А вообще я читал на эту тему, даже ваш regexpru.chm файл, и получил общую идею. Но, для не программистского мозга это довольно таки не легко переварить.
Буду искать совсем начальные примеры.

И что именно требуется? Просто менять знак подчёркивания на точку?
Дык так и пишем: %WL _ .
Требуется что бы он как и раньше искал пробелы и менял на точки. А также искал знаки подчёркивания и менял на точки.
Аватара пользователя
Flasher
Сообщения: 14229
Зарегистрирован: Пт ноя 06, 2009 00:33
Откуда: Москва

Сообщение Flasher »

Iori
Идея должна стыковаться с логикой. Сколько подвыражений - столько может участвовать и замен, включая нумерованные переменные/свойства ($№), которые записываются в нужном порядке или исключаются из строки замены.
Также смотрим, не будучи программистом, на описание метасимвола \w:
1) Алфавитно-цифровой символ или знак подчёркивания '_'.
2) Соответствует латинской букве, цифре или подчеркиванию. Эквивалентно '[A-Za-z0-9_]'.
Т.е. становится понятно, что это никак не лишь знак подчёркивания, а один из символов указанной совокупности. Значит, всё, что попадает в этот список, и будет задействовано в работе.
Исходя из вышеописанного, вставка (\s+)(\w+) неверна, т.е. должно быть одно подвыражение в скобках с разделением множеств двух заданных символов спецсимволом ИЛИ '|': (_+|\s+).
Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.
Iori
Сообщения: 552
Зарегистрирован: Ср апр 25, 2012 20:33

Сообщение Iori »

Flasher

Спасибо, вроде начинаю чуть чуть понимать.

Составил такое выражение

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

(_+|\s+|^\[|^\(|$\]|$\))
работает, но ставит точки после скобок.

Из файла ffast_raw file copier ( 2009 )_portabl.zip превращает в
fast.raw.file.copier.(.2009.).portabl.zip, а надо в fast.raw.file.copier.(2009).portabl.zip

Игрался с ворпсосм ?! и ?<=, но толком как хотел не вышло. Скрипт выдаёт ошибку. Скорее всего дело в скобках :(
Аватара пользователя
Flasher
Сообщения: 14229
Зарегистрирован: Пт ноя 06, 2009 00:33
Откуда: Москва

Сообщение Flasher »

Iori
Я же указал на ошибку в приведённом выражении. Остальное там всё то же самое.
В последнем же опять ошибки (безотносительно поставленной задачи). Что понимается под $\]|$\) ?
Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.
Iori
Сообщения: 552
Зарегистрирован: Ср апр 25, 2012 20:33

Сообщение Iori »

Flasher
Что понимается под |$\]|$\) ?
Типо что-бы ставились точки после скобок. Так ]. и так ).
То-есть если файл такой файл[200]файл.zip то после становилсяфайл[200].файл.zip.

Теперь пытаюсь сделать так, что-бы в самих скобках, только сразу после конца первой и перед началом последний скобки, точек не было.
файл[200]файл.zip в файл.[200].файл.zip

Я понял намёк и поменял ваше выражение на

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

%WL ([^\(|^\[])(\s+)|(_+)((?!\)|\])) $1.$3

Всё равно точки остаются в скобках. Надо из [ ла ла ла ] в .[ла.ла.ла].

Буду дальше тестировать :)[/b]
Аватара пользователя
Flasher
Сообщения: 14229
Зарегистрирован: Пт ноя 06, 2009 00:33
Откуда: Москва

Сообщение Flasher »

Iori
Мда. Почему нельзя просто заменить на приведённый мной кусок?
Я только что писал про число подвыражений, а опять вижу их 4 шт. вместо 3-х. Предлагалось
%WL ([^\(|^\[])(_+|\s+)((?!\)|\])) $1.$3
, а результатом стало
%WL ([^\(|^\[])(\s+)|(_+)((?!\)|\])) $1.$3
Спрашивается, почему? Изображение
Может, я по-французски объясняю? Вроде нет.
Iori писал(а):Всё равно точки остаются в скобках.
В смысле "остаются"? Задача была - менять на них. Изображение
Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.
Iori
Сообщения: 552
Зарегистрирован: Ср апр 25, 2012 20:33

Сообщение Iori »

Flasher
Мда. Почему нельзя просто заменить на приведённый мной кусок?
Можно, но тогда скрипт не полностью справляется с задачей.
Нужно что-бы выбранные папки или файлы содержали точки между словами где пробелы.
Исключение: отсутствие точки после скобки ( и [, и перед ) и ].
К этой задаче, я просто добавил знак подчеркивания, и всё.

Попробуйте с вашим выражением переименовать вот этот файл.

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

fast_raw_file copier    ( 2009    )    _portabl.zip
а надо в

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

fast.raw.file.copier.(2009).portabl.zip
если файл такой

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

fast_raw_file copier    ( 2009 year year    )    _portabl.zip
то надо в

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

fast.raw.file.copier.(2009.year.year).portabl.zip
Получается, - точки в ковычках, две точки перед словом portabl.
Может, я по-французски объясняю? Вроде нет.
Это скорее всего мой русский :oops:
[/code]
Последний раз редактировалось Iori Вс фев 15, 2015 21:30, всего редактировалось 3 раза.
Аватара пользователя
Flasher
Сообщения: 14229
Зарегистрирован: Пт ноя 06, 2009 00:33
Откуда: Москва

Сообщение Flasher »

Iori писал(а):Можно, но тогда скрипт не полностью справляется с задачей.
По-моему, с поставленной задачей справляется.
Iori писал(а):К этой задаче, я просто добавил знак подчеркивания, и всё.
Это как раз я сделал. А тут, уже опять повторяюсь, мы видим очевидное разделение на подвыражения.
Iori писал(а):Получается, - точки в ковычках, две точки перед словом portabl.
Про кавычки не понял. А про 2 точки - с точки зрения логики и исходной задачи так и должно быть.

То, что я вижу сейчас, это уже другая задача. Изначально было чётко написано, что внутри скобок крайние пробелы убирать не нужно. А теперь всё поменялось?
Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.
Ответить