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

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

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

Post by iva »

Возможно ли в строке с префиксом lua: написать что-то типа "> имя_файла" чтобы текст, появляющийся на экране записывался бы в файл? Я понимаю, что можно поменять сам макрос, который вызывается, но его не хочется трогать.
Last edited by HaRT on Thu 16 Feb, 2017 21:10, edited 1 time in total.
Reason: Улучшен Заголовок Темы
Shmuel
Posts: 6815
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 41 times
Been thanked: 526 times

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

Post by Shmuel »

Вот так вот просто > конечно нельзя. Этот символ в Lua означает "больше", а вовсе не переадресацию вывода в файл.
Лучше бы привели конкретный пример.
User avatar
HaRT
Moderator
Posts: 10806
Joined: Tue 30 Aug, 2005 17:21
Has thanked: 220 times
Been thanked: 357 times

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

Post by HaRT »

Shmuel wrote: Лучше бы привели конкретный пример.
Я так понял: есть скрипт (скажем, [i]my.lua[/i]), который использует FAR API и читает/пишет что-то из/в консоль (стандартным образом), а хочется запустить его так: lua:@my.lua <in >out.
Фар есть инструмент, а не нянька. © 2009 DrKnS
iva
Posts: 128
Joined: Sat 02 Nov, 2013 21:32
Been thanked: 3 times

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

Post by iva »

Да, примерно так, но чуть иначе. Есть у меня макрос, который повешен на клавишу (CtrlBackSlash). Он выполняет некоторые довольно громоздкие действия, а в консоль пишет сообщения. Мне нужно было эти сообщения записать в файл. Для этого я хотел вызвать макрос из командной строки lua: eval("CtrlBackSlash",2) и надеялся, что можно будет переадресовать вывод.
Может можно что-то написать на lua перед eval, чтобы вывод перенаправился?
Shmuel
Posts: 6815
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 41 times
Been thanked: 526 times

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

Post by Shmuel »

Можно, но очень громоздко получается:
lua:io.output("myfile.txt") eval("CtrlBackSlash",2) io.close() io.output(io.stdout)
При этом, если не указать полный путь для файла, он попадёт в "текущую папку", которая чаще всего не совпадает с активной панелью.
User avatar
HaRT
Moderator
Posts: 10806
Joined: Tue 30 Aug, 2005 17:21
Has thanked: 220 times
Been thanked: 357 times

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

Post by HaRT »

Shmuel wrote: Можно
А перенаправление сложно реализовать?
Фар есть инструмент, а не нянька. © 2009 DrKnS
Shmuel
Posts: 6815
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 41 times
Been thanked: 526 times

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

Post by Shmuel »

HaRT wrote: А перенаправление сложно реализовать?
Сложность может и не велика (может быть час-два работы), но вот потребности у меня в этом до сих пор никогда не возникало. То есть мотивации заниматься этим у меня нет (что, впрочем, не должно препятствовать другим, кому это действительно нужно).
iva
Posts: 128
Joined: Sat 02 Nov, 2013 21:32
Been thanked: 3 times

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

Post by iva »

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

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