BatchRen(Lua) - Batch rename files (Пакетное переименование файлов)

Здесь обсуждается всё, что касается макросов.
Post Reply
ivank
Posts: 157
Joined: Fri 08 Aug, 2008 16:14
Has thanked: 3 times
Been thanked: 6 times
Contact:

BatchRen(Lua) - Batch rename files (Пакетное переименование файлов)

Post by ivank »

Макрос предназначен для пакетного переименования файлов. По формату совместим с плагином BatchRen.
Основная цель: использование единой версии в far3 и far2m, без необходимости сборки плагина.


Макрос в процессе тестирования, могут быть ошибки, provided "AS IS".
Attachments
BatchRen.lua
(5.72 KiB) Downloaded 21 times
Last edited by ivank on Thu 18 Apr, 2024 18:10, edited 1 time in total.
User avatar
Wave
Posts: 1887
Joined: Thu 04 Aug, 2005 18:47
Has thanked: 15 times
Been thanked: 26 times

BatchRen(Lua) - Batch rename files (Пакетное переименование файлов)

Post by Wave »

Из перепробованных плагинов переименования я остановился на том, который просто даёт в редакторе список выделенных файлов и всё. Никаких «старое имя — новое», никаких кавычек, ничего. Лично мне так оказалось удобней всего. (NameEditor)

Проблема формата «старое имя — новое» в том, что имена бывают длиннющие-длиннющие. Сохранённые веб-страницы или видосы ютуба, например, у которых надо всего лишь удалить большую часть имени. Или когда поиск с заменой делаешь, надо заморачиваться с регуляркой типа ".*?".*?"чего-то-там менять на $0что-то-другое — неудобно же.
Пользуюсь ФАРом больше 20 лет © собирательный.
ivank
Posts: 157
Joined: Fri 08 Aug, 2008 16:14
Has thanked: 3 times
Been thanked: 6 times
Contact:

BatchRen(Lua) - Batch rename files (Пакетное переименование файлов)

Post by ivank »

Многое зависит от сценария использования. Мне, например, важнее наглядность и обратимость действий. Я могу сохранить "скрипт" переименования, и применить его для возврата старых имен просто поменяв местами имена файлов с помощью вертикальных блоков.
Хорошо, когда есть возможность выбрать удобный инструмент для решения задачи :)
Shmuel
Posts: 6848
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 41 times
Been thanked: 532 times

BatchRen(Lua) - Batch rename files (Пакетное переименование файлов)

Post by Shmuel »

По поводу EF_DISABLEHISTORY or EF_DISABLESAVEPOS
Это не работает - нажмите AltF11, и вы увидите временные файлы созданные скриптом.
Вместо этого поставьте F.EF_DISABLEHISTORY + (F.EF_DISABLESAVEPOS or 0)
User avatar
John Doe
Бюрократ
Posts: 13903
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 75 times
Been thanked: 431 times
Contact:

BatchRen(Lua) - Batch rename files (Пакетное переименование файлов)

Post by John Doe »

Ivank wrote: Thu 18 Apr, 2024 15:38 Мне, например, важнее наглядность и обратимость действий. Я могу сохранить "скрипт" переименования, и применить его для возврата старых имен просто поменяв местами имена файлов с помощью вертикальных блоков.
Можно было бы опционально сохранять скрипт обратного переименования сразу в виде bat-файла, независимо от того в каком формате это в редакторе.
И я тоже плюсую опциональную возможность использовать простой список файлов, а не пары.
Можно же опционально в плагине реализовать.
https://t.me/FarManager — Telegram чат
Shmuel
Posts: 6848
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 41 times
Been thanked: 532 times

BatchRen(Lua) - Batch rename files (Пакетное переименование файлов)

Post by Shmuel »

John Doe, вы наверное с телефона. То, что вы процитировали, принадлежит не мне.
User avatar
John Doe
Бюрократ
Posts: 13903
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 75 times
Been thanked: 431 times
Contact:

BatchRen(Lua) - Batch rename files (Пакетное переименование файлов)

Post by John Doe »

Виноват, исправился.
https://t.me/FarManager — Telegram чат
ivank
Posts: 157
Joined: Fri 08 Aug, 2008 16:14
Has thanked: 3 times
Been thanked: 6 times
Contact:

BatchRen(Lua) - Batch rename files (Пакетное переименование файлов)

Post by ivank »

Shmuel wrote: Thu 18 Apr, 2024 15:38Вместо этого поставьте F.EF_DISABLEHISTORY + (F.EF_DISABLESAVEPOS or 0)
Спасибо, исправил, обновил в шапке.

John Doe wrote: Thu 18 Apr, 2024 15:51плюсую опциональную возможность использовать простой список файлов, а не пары. Можно же опционально в плагине реализовать.
Существуют разные сценарии, когда старое название необходимо для понимания логики переименования. Например, я в качестве развития хочу сделать возможность получения списка файлов из подкаталогов (такая функциональность есть в плагине). И в таком режиме работы бывает необходимо менять строки местами (например, чтобы переименовывать название каталога позже, чем файлы внутри него). При отсутствии пары «старое имя - новое имя» так сделать будет нельзя.
Я в принципе согласен с тем, что иногда проще изменять только новые названия, но получается, что под Windows уже есть готовые решения, а под Linux тут лучше написать отдельный макрос. В общем-то, все упирается в наличие свободного времени.
User avatar
Wave
Posts: 1887
Joined: Thu 04 Aug, 2005 18:47
Has thanked: 15 times
Been thanked: 26 times

BatchRen(Lua) - Batch rename files (Пакетное переименование файлов)

Post by Wave »

Окей, я, по крайней мере, теперь увидел, какие существуют сценарии, когда удобней формат старое имя — новое. В любом случае, спасибо за скрипт — больше скриптов хороших и разных. Плагины, несмотря ни на что, всё-таки несколько проприетарная штука, даже если есть исходники.
Пользуюсь ФАРом больше 20 лет © собирательный.
Yegor
Posts: 1341
Joined: Mon 04 Apr, 2005 13:41
Location: San Ramon, CA / Kharkov, UA
Has thanked: 35 times
Been thanked: 64 times

BatchRen(Lua) - Batch rename files (Пакетное переименование файлов)

Post by Yegor »

ivank wrote: Thu 18 Apr, 2024 13:02 Из-за ограничения используемых API в Windows макрос не работает с путями более 255 символов и с особыми символами в конце имени файла (пробел, точка и т.п.).
Добавьте перед путем \\?\ и все должно работать:

Code: Select all

MoveFile('\\?\D:\BatchRen.lua', '\\?\D:\BatchRen.lua.')
Мы не можем ждать милостей от Фара, взять их у него — наша задача! (C) Мичурин
Shmuel
Posts: 6848
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 41 times
Been thanked: 532 times

BatchRen(Lua) - Batch rename files (Пакетное переименование файлов)

Post by Shmuel »

ivank, могу ли я поместить ваш скрипт (с указанием автора) в свою репозиторию?
ivank
Posts: 157
Joined: Fri 08 Aug, 2008 16:14
Has thanked: 3 times
Been thanked: 6 times
Contact:

BatchRen(Lua) - Batch rename files (Пакетное переименование файлов)

Post by ivank »

Wave wrote: Thu 18 Apr, 2024 14:16просто даёт в редакторе список выделенных файлов и всё
John Doe wrote: Thu 18 Apr, 2024 15:51плюсую опциональную возможность использовать простой список файлов, а не пары.
Реализовал такую возможность. В шапке пока не обновляю, т.к. не дошли руки до создания конфига, сейчас убирать ненужные функции макроса нужно удалением MenuItem в коде.
Сейчас реализовано три режима работы (отдельными пунктами в меню плагинов):
"Batch rename (Lua)" - переименование файлов "старое имя" - "новое имя",
"Batch rename (Lua) [Copy]" - копирование файлов "старое имя" - "новое имя",
"Batch rename (Lua) [Simple]" - переименование, только новое имя (без кавычек).
Attachments
BatchRen.lua
(9.02 KiB) Downloaded 17 times
ivank
Posts: 157
Joined: Fri 08 Aug, 2008 16:14
Has thanked: 3 times
Been thanked: 6 times
Contact:

BatchRen(Lua) - Batch rename files (Пакетное переименование файлов)

Post by ivank »

Shmuel wrote: Sat 20 Apr, 2024 20:05могу ли я поместить ваш скрипт (с указанием автора) в свою репозиторию?
Конечно, я только поддерживаю.
Кстати, в far2m есть проблема с назначением горячих клавиш на макросы, я не уверен, что это именно проблема far2m, а не far2l, завел issue.
Shmuel
Posts: 6848
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 41 times
Been thanked: 532 times

BatchRen(Lua) - Batch rename files (Пакетное переименование файлов)

Post by Shmuel »

ivank wrote: Sun 21 Apr, 2024 12:05 Конечно, я только поддерживаю.
Спасибо, поместил.
Post Reply

Return to “Обсуждение макросов”