Выполнение команды со сменой каталога Topic is solved

Столкнулись с проблемой в использовании макросов? Здесь можно получить помощь.
Post Reply
buniak_a_h
Posts: 2286
Joined: Sat 20 Apr, 2013 00:17
Location: Питер
Has thanked: 139 times
Been thanked: 245 times
Contact:

Выполнение команды со сменой каталога

Post by buniak_a_h »

Здравствуйте, уважаемые знатоки!
Задачка навеяна несколькими темами.
Необходимо выполнить некую команду для файлов, упакованных в архив (предварительно распаковав их во временный каталог).
Скрипт я сделал, он даже рабочий, но у него есть пара неудобств. Причина в том, что я команду пишу в командную строку, после чего выдаю Keys"Enter". При этом меняю и восстанавливаю папку. Вот в этом-то и засада оказалась.
1. забывается отметка файлов так, что восстановить их по Ctrl+M уже не получится
2. экран "засоряется" командными строками.
Альтернативы - это вызов через win.ShellExecute или os.execute. Но у этих двух вариантов есть общая беда: они не обеспечат вызов команды FAR-а по префиксу (например, edit:!.! или vc:!&). К тому же os.execute не даёт возможности указать рабочую папку, а после win.ShellExecute всё на экране съезжает, и я так и не нашёл способа перерисовать панели (far.AdvControl(far.Flags.ACTL_REDRAWALL) не помогает)
Поделитесь, пожалуйста, опытом - кто как делает такие вещи?
Макрос "симулирующий" выполнение команды, аналогичный Ctrl+G, но внутри архива, привожу
Ну и для удобства - то же в архиве:
ArchFileProc.lua.7z
(1.74 KiB) Downloaded 14 times
Испытано на командах
"C:\Program Files\Notepad++\notepad++.exe" "!.!"
"C:\Program Files\Notepad++\notepad++.exe" "!\!.!"
edit:!.!
dir !\!.!
buniak_a_h
Posts: 2286
Joined: Sat 20 Apr, 2013 00:17
Location: Питер
Has thanked: 139 times
Been thanked: 245 times
Contact:

Выполнение команды со сменой каталога

Post by buniak_a_h »

SOS!!! Не могу понять, моя это ошибка, или нет.
Во вложении макрос, выполняющий команду для файлов внутри архива. Там три строки, содержащей вызов Far.DisableHistory. Они закомментированы. Но стоит любую из них раскомментировать, как макрос зацикливается так, что помогвет только выход из Windows (Ctrl+Alt+Del).
Макрос проверялся на команде "C:\Program Files\Notepad++\notepad++.exe" "!.!"
Попробую на NOTEPAD.EXE, но сначала отошлю сообщение - вдруг снова зависнет всё …
Как воспроизвести:
1. Зайти в архив (плагином ArcLite)
2. Отметить пару файлов (не обязательно)
3. Нажать Ctrl+G
4. Ввести командную строку
ArchFileProc-002.lua.7z
(1.74 KiB) Downloaded 9 times
Last edited by buniak_a_h on Sun 31 May, 2020 02:07, edited 2 times in total.
buniak_a_h
Posts: 2286
Joined: Sat 20 Apr, 2013 00:17
Location: Питер
Has thanked: 139 times
Been thanked: 245 times
Contact:

Выполнение команды со сменой каталога

Post by buniak_a_h »

P/S. Как показал эксперимент, замена Notepad++ на Notepad.exe приводит к нормальному выполнения макроса.
buniak_a_h
Posts: 2286
Joined: Sat 20 Apr, 2013 00:17
Location: Питер
Has thanked: 139 times
Been thanked: 245 times
Contact:

Выполнение команды со сменой каталога

Post by buniak_a_h »

Задача решена при помощи модуля для запуска от zg. Все свободны…
Post Reply

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