Перенаправление вывода средствами командной строки lua:

Столкнулись с проблемой в использовании макросов? Здесь можно получить помощь.
Post Reply
iva
Posts: 123
Joined: Sat 02 Nov, 2013 21:32
Been thanked: 3 times

Перенаправление вывода средствами командной строки lua:

Post by iva » Thu 16 Feb, 2017 16:05

Возможно ли в строке с префиксом lua: написать что-то типа "> имя_файла" чтобы текст, появляющийся на экране записывался бы в файл? Я понимаю, что можно поменять сам макрос, который вызывается, но его не хочется трогать.
Last edited by HaRT on Thu 16 Feb, 2017 21:10, edited 1 time in total.
Reason: Улучшен Заголовок Темы

Shmuel
Posts: 5038
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 11 times
Been thanked: 132 times

переадресация вывода средствами командной строки lua:

Post by Shmuel » Thu 16 Feb, 2017 16:23

Вот так вот просто > конечно нельзя. Этот символ в Lua означает "больше", а вовсе не переадресацию вывода в файл.
Лучше бы привели конкретный пример.

User avatar
HaRT
Moderator
Posts: 7977
Joined: Tue 30 Aug, 2005 17:21
Location: Санкт-Петербург
Has thanked: 66 times
Been thanked: 97 times

переадресация вывода средствами командной строки lua:

Post by HaRT » Thu 16 Feb, 2017 17:29

Shmuel wrote: Лучше бы привели конкретный пример.
Я так понял: есть скрипт (скажем, [i]my.lua[/i]), который использует FAR API и читает/пишет что-то из/в консоль (стандартным образом), а хочется запустить его так: lua:@my.lua <in >out.
Фар есть инструмент, а не нянька. © 2009 DrKnS

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

переадресация вывода средствами командной строки lua:

Post by iva » Thu 16 Feb, 2017 17:37

Да, примерно так, но чуть иначе. Есть у меня макрос, который повешен на клавишу (CtrlBackSlash). Он выполняет некоторые довольно громоздкие действия, а в консоль пишет сообщения. Мне нужно было эти сообщения записать в файл. Для этого я хотел вызвать макрос из командной строки lua: eval("CtrlBackSlash",2) и надеялся, что можно будет переадресовать вывод.
Может можно что-то написать на lua перед eval, чтобы вывод перенаправился?

Shmuel
Posts: 5038
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 11 times
Been thanked: 132 times

переадресация вывода средствами командной строки lua:

Post by Shmuel » Thu 16 Feb, 2017 18:42

Можно, но очень громоздко получается:
lua:io.output("myfile.txt") eval("CtrlBackSlash",2) io.close() io.output(io.stdout)
При этом, если не указать полный путь для файла, он попадёт в "текущую папку", которая чаще всего не совпадает с активной панелью.

User avatar
HaRT
Moderator
Posts: 7977
Joined: Tue 30 Aug, 2005 17:21
Location: Санкт-Петербург
Has thanked: 66 times
Been thanked: 97 times

переадресация вывода средствами командной строки lua:

Post by HaRT » Thu 16 Feb, 2017 19:21

Shmuel wrote: Можно
А перенаправление сложно реализовать?
Фар есть инструмент, а не нянька. © 2009 DrKnS

Shmuel
Posts: 5038
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 11 times
Been thanked: 132 times

переадресация вывода средствами командной строки lua:

Post by Shmuel » Thu 16 Feb, 2017 20:26

HaRT wrote: А перенаправление сложно реализовать?
Сложность может и не велика (может быть час-два работы), но вот потребности у меня в этом до сих пор никогда не возникало. То есть мотивации заниматься этим у меня нет (что, впрочем, не должно препятствовать другим, кому это действительно нужно).

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

Перенаправление вывода средствами командной строки lua:

Post by iva » Fri 17 Feb, 2017 23:03

Shmuel, спасибо!
Что громоздко - не страшно. Хуже то, что переадресуется не всё. У меня в макросе оказался os.execute() и её вывод остается на экран. Так что пришлось макрос временно изменить, дописав переадресацию в командe в os.execute.

Post Reply

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

Who is online

Users browsing this forum: No registered users and 1 guest