Макрос на выделенных папках

Столкнулись с проблемой в использовании Far? Здесь можно получить помощь.
Post Reply
netb0x
Posts: 2
Joined: Fri 17 Nov, 2017 12:55

Макрос на выделенных папках

Post by netb0x » Fri 17 Nov, 2017 13:41

День добрый, уважаемые форумчане!
Требуется помощь FAR-гур.

Ежели что - FAR 3.0 build 4949 x64

Появилась простенькая задачка: пробежаться по всем выделенным папкам и в каждой из них совершить некие манипуляции с содержимым.

Захотелось реализовать через макрос.
Идея такая: записываем макрос, выделяем папки, жмём сочетание клавиш, на которое повешен макрос, макрос входит в папку, выполняет манипуляции, выходит, снимает выделение с папки, переходит к следующей.

Столкнулся с проблемой: после входа-выхода в папку выделение папок слетает.
Пытался сохранять его через Ctrl-Ins перед входом в папку с последующим Ctrl-S после выхода.
Выяснилось, что внутри макроса Ctrl-S то ли не записывается, то ли не срабатывает, работает только по его окончанию.

Возникло 2 вопроса:
1. Можно ли как-то обойти это ограничение (сохранить выделение в текущей папке после входа-выхода в одну из её подпапок)?

2. Можно ли как-то выполнить макрос на всех выделенных папках?
Ну, хотя бы выделить все нужные папки, отсортировать выделенные в конец списка, встать на первую, отработать макрос внутри папки, снять выделение с текущей (если выделение всё-таки удастся сохранить каким-то хитрым способом), перейти к следующей. Как в этой ситуации повторить макрос ровно N раз, где N - число выделенных папок?

Если что-то изложил непонятно, готов прояснить.

User avatar
zg
zero-gravity
Posts: 5453
Joined: Tue 15 Mar, 2005 17:36
Location: riga
Been thanked: 63 times
Contact:

Макрос на выделенных папках

Post by zg » Fri 17 Nov, 2017 14:08

netb0x wrote:
Fri 17 Nov, 2017 13:41
Выяснилось, что внутри макроса Ctrl-S то ли не записывается, то ли не срабатывает, работает только по его окончанию.
потому что нет в фаре такого сочетания как ctrl-s в панелях. у вас там, по видимому, макрос, который по содержимому клипборда выделяет файлы на панели. вот код этого макроса вам и надо использовать в своём.

iva
Posts: 126
Joined: Sat 02 Nov, 2013 21:32
Been thanked: 3 times

Макрос на выделенных папках

Post by iva » Fri 17 Nov, 2017 20:16

Я бы воспользовался Ctrl-G

User avatar
John Doe
Бюрократ
Posts: 11794
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 26 times
Been thanked: 126 times

Макрос на выделенных папках

Post by John Doe » Sat 18 Nov, 2017 17:22

И столкнулись бы с той же проблемой, нет?

iva
Posts: 126
Joined: Sat 02 Nov, 2013 21:32
Been thanked: 3 times

Макрос на выделенных папках

Post by iva » Sat 18 Nov, 2017 21:28

Манипуляции, которые необходимо совершить с содержимым папки, оформляю в виде .cmd файла, который принимает в качестве аргумента имя папки. В диалоге "Apply command" пишу имя этого файла с завершающим !.! И всё, вроде, работает.

netb0x
Posts: 2
Joined: Fri 17 Nov, 2017 12:55

Макрос на выделенных папках

Post by netb0x » Mon 20 Nov, 2017 13:38

Спасибо всем ответившим!

Действительно Ctrl-S - это стандартный макрос, идущий в дистрибутиве ФАРа: C:\Program Files\Far Manager\Addons\Macros\Panel.SelectFromClipboard.lua
Я об этом обстоятельстве забыл. Даже если перенести его код в созданный мной макрос, то остаётся нерешённой проблема, как заставить макрос отработать только на выделенных папках (может можно как-то проверять внутри макроса, что есть отмеченные папки в панели или запустить макрос на выполнение ровно N раз).

В моём случае остановился на решении через Ctrl-G.
С батником получилось разобраться достаточно быстро, так что этот вариант оказался самым "дешёвым".

Ещё раз спасибо за помощь!

Post Reply

Return to “Нужна помощь”