Работа с консольными алиасами

Здесь выкладываются готовые к использованию макросы и скрипты.
User avatar
John Doe
Бюрократ
Posts: 11076
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 11 times
Been thanked: 64 times

Работа с консольными алиасами

Post by John Doe » Sat 08 Mar, 2014 23:52

Основная тема об алиасах не содержит общей информации, поэтому размещу здесь это предисловие:

Использование:
  • Алиасы загружаются при старте фара, и перезагружаются при каждом редактировании файла алиасов (после закрытия редактора).
  • Файл с алиасами (по умолчанию alias.doskey) следует разместить в той же папке, где расположен и сам скрипт alias_doskey.lua.
  • Кодировка файла: 866 │ OEM
  • Формат файла: типичный ini-файл, разбитый на секции вида [far.exe], [cmd.exe].
    (Алиасы секции [far.exe] имеют приоритет. Если нужно изменить их с помощью DOSKEY.EXE, то в командную строку необходимо добавить /EXENAME=far.exe)
  • Об имени файла:
  • В качестве комментариев можно использовать строки, начинающиеся на ;=
Из командной строки:
  • a [alias] — открыть список алиасов в редакторе и [опционально] установить курсор на "alias".
  • rr — перезагрузить алиасы.
Требуется FAR 3 build >=3854

Attachments
Alias.7z
(2.02 KiB) Downloaded 136 times

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

Re: Работа с консольными алиасами

Post by John Doe » Thu 15 May, 2014 16:02

Latest post of the previous page:

Теоретически да, но не так просто. А что это даст вам?

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

Re: Работа с консольными алиасами

Post by Shmuel » Fri 16 May, 2014 08:06

GorDAn wrote:Хотел сообщение вывести не в окно, а в консоль. Чтобы после загрузки было примерно так...

Code: Select all

Far Manager, version 3.0 (build 3901) x64
Copyright © 1996-2000 Eugene Roshal, Copyright © 2000-2014 Far Group
Console aliases loading... Ok
Это можно скриптом сделать?
http://forum.farmanager.com/viewtopic.p ... 97#p111497

GorDAn
Posts: 49
Joined: Sun 26 Jun, 2011 09:47
Has thanked: 6 times

Re: Работа с консольными алиасами

Post by GorDAn » Fri 16 May, 2014 10:56

John Doe wrote:Теоретически да, но не так просто. А что это даст вам?
Да, согласен это некритичный функционал. Я бы даже отнёс это к рюшечкам :) Просто я пытаюсь освоить Lua вообще и Luafar в частности. Да и лог жизнедеятельности программ/скриптов в консоль мне привычней.

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

Re: Работа с консольными алиасами

Post by John Doe » Fri 16 May, 2014 11:12

А как-же мелькание, не помешает?

GorDAn
Posts: 49
Joined: Sun 26 Jun, 2011 09:47
Has thanked: 6 times

Re: Работа с консольными алиасами

Post by GorDAn » Fri 16 May, 2014 11:20

Я пробовал так. Скрипт выводит в свой поток. А я хотел в поток, куда Far выводит сообщение «Far Manager, version 3.0 (build 3904) x64 ...».
Плюс к этому код:

Code: Select all

io.write("Console aliases loading...\n");
os.execute(('doskey rr=doskey/macrofile="%s" 1<&2 >nul'):format(_aliasfile))
os.execute(('doskey/macrofile="%s" 1<&2 >nul'):format(_aliasfile))
io.write(" Ok\n")
выводит «Console aliases loading...» и всё.

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

Re: Работа с консольными алиасами

Post by John Doe » Fri 16 May, 2014 11:23

Уберите 1<&2 >nul.
И что значит "в свой поток"?

GorDAn
Posts: 49
Joined: Sun 26 Jun, 2011 09:47
Has thanked: 6 times

Re: Работа с консольными алиасами

Post by GorDAn » Fri 16 May, 2014 11:26

John Doe wrote:А как-же мелькание, не помешает?
Мелькание происходит из за плагина "ConEmu Background"

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

Re: Работа с консольными алиасами

Post by John Doe » Fri 16 May, 2014 11:30

Я о мелькании панелей.
Хотя если этот подход устраняет мелькание ConEmu Background, тогда понятно

GorDAn
Posts: 49
Joined: Sun 26 Jun, 2011 09:47
Has thanked: 6 times

Re: Работа с консольными алиасами

Post by GorDAn » Fri 16 May, 2014 11:37

John Doe wrote:...
И что значит "в свой поток"?
Возможно, я не правильно выражаюсь. Когда Far запустился, если нажать Ctrl+O, на чёрном фоне сообщение о версии Far и т.д. Вот я и спрашиваю можно из данного скрипта вывести туда своё сообщение? У меня через io не получилось. Вот я и предположил, что для каждого скрипта открывается свой поток ввода вывода.

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

Re: Работа с консольными алиасами

Post by John Doe » Fri 16 May, 2014 11:39

Вы часом не упустили команду panel.SetUserScreen()?

GorDAn
Posts: 49
Joined: Sun 26 Jun, 2011 09:47
Has thanked: 6 times

Re: Работа с консольными алиасами

Post by GorDAn » Fri 16 May, 2014 11:45

John Doe wrote:Я о мелькании панелей.
Хотя если этот подход устраняет мелькание ConEmu Background, тогда понятно
Нет, я к тому, что мелькание происходит из-за работы плагина. Мелькание не устранить кроме, как отключить его.

GorDAn
Posts: 49
Joined: Sun 26 Jun, 2011 09:47
Has thanked: 6 times

Re: Работа с консольными алиасами

Post by GorDAn » Fri 16 May, 2014 11:47

John Doe wrote:Вы часом не упустили команду panel.SetUserScreen()?
Да. Сейчас попробую...

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

Re: Работа с консольными алиасами

Post by John Doe » Fri 16 May, 2014 11:51

John Doe wrote:
GorDAn wrote:выводит «Console aliases loading...» и всё.
Уберите 1<&2 >nul.
Тут ещё надо уточнить а что собственно вы ожидали увидеть? 1<&2 >nul подавляют только вывод ошибок.
Если же вы хотите увидеть командную строку выполняемых команд, то добавьте io.output (желательно перевести строки в Ansi)

GorDAn
Posts: 49
Joined: Sun 26 Jun, 2011 09:47
Has thanked: 6 times

Re: Работа с консольными алиасами

Post by GorDAn » Fri 16 May, 2014 11:54

Спасибо большое! Это моя невнимательность. Спутал с far.SaveScreen() :( Теперь работает.

GorDAn
Posts: 49
Joined: Sun 26 Jun, 2011 09:47
Has thanked: 6 times

Re: Работа с консольными алиасами

Post by GorDAn » Fri 16 May, 2014 11:58

К 1<&2 >nul у меня претензий нет :) Ещё раз спасибо за помощь и скрипт.

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

Re: Работа с консольными алиасами

Post by John Doe » Fri 16 May, 2014 12:41

GorDAn wrote:

Code: Select all

os.execute(('doskey rr=doskey/macrofile="%s" 1<&2 >nul'):format(_aliasfile))
os.execute(('doskey/macrofile="%s" 1<&2 >nul'):format(_aliasfile))
А что если через ShellExecuteEx запускать DOSKEY.EXE напрямую, без CMD.EXE?
(1<&2 >nul надо конечно убрать, т.к. это параметры командного процессора)

GorDAn
Posts: 49
Joined: Sun 26 Jun, 2011 09:47
Has thanked: 6 times

Re: Работа с консольными алиасами

Post by GorDAn » Fri 16 May, 2014 15:24

Code: Select all

ShellExecuteEx('doskey', ('rr=doskey/macrofile="%s"'):format(_aliasfile))
ShellExecuteEx('doskey', ('/macrofile="%s"'):format(_aliasfile))
Работает, но через раз у меня вырубается "ConEmu Background" :( Пробую разобраться с реализацией ShellExecuteEx(...)

Post Reply

Return to “Полезные макросы и скрипты”

Who is online

Users browsing this forum: No registered users and 4 guests