Страница 1 из 1

Скриптовый язык RouterOS

Добавлено: 18 май 2016, 15:53
Dragon_Knight
Всем привет.

Возникла необходимость при выполнении скрипта через консоль (import file=) спросить пользователя, хочет он это делать или нет, например: "Install Extra Domain (Block Skype, Hotmain, Dr. Watson and/or Error Reporting) (Y\N) ? : " и пользователю нужно нажать нужную кнопку.
Полазив по wiki, я не нашёл как такое реализовать.

Re: Скриптовый язык RouterOS

Добавлено: 18 май 2016, 17:12
vqd
:put [terminal inkey ]

Re: Скриптовый язык RouterOS

Добавлено: 18 май 2016, 17:32
Dragon_Knight
vqd, да, то что нужно. Спасибо :co_ol:

А ещё вопрос. Вот я циклом иду по массиву и выполняю строчку ":if ([find name=$i] = "") do={ add address=127.0.0.1 comment=WinTracking name=$i;". Код выполняется правильно, но если уже есть много записей (15к), то добавление 10 записей таким кодом становиться занятие на минут 10. Если-же не делать такую проверку, то если встречается такая-же запись, получаем исключение и выход их скрипта.
Можно-ли добавлять записи и отслеживать это исключение?

Re: Скриптовый язык RouterOS

Добавлено: 18 май 2016, 17:35
vqd
в микротике есть ексепшн, в вики поищи такую штуку как on-error
Возможно ускорит ибо on-error будет отрабатывать только в момент когда у тебя записи совпадут

Re: Скриптовый язык RouterOS

Добавлено: 18 май 2016, 19:24
Dragon_Knight
vqd, конструкция ":do {} on-error={}" не просто ускоряет, а делает установку практически моментальной.
Спасибо. Скоро обновлю мои скрипты на сайте :co_ol:

Re: Скриптовый язык RouterOS

Добавлено: 04 июн 2016, 22:36
23q
Dragon_Knight писал(а):Всем привет.

Возникла необходимость при выполнении скрипта через консоль (import file=) спросить пользователя, хочет он это делать или нет, например: "Install Extra Domain (Block Skype, Hotmain, Dr. Watson and/or Error Reporting) (Y\N) ? : " и пользователю нужно нажать нужную кнопку.
Полазив по wiki, я не нашёл как такое реализовать.


vqd писал(а)::put [terminal inkey ]

приведите пример реализации пожалуйся.

Re: Скриптовый язык RouterOS

Добавлено: 04 июн 2016, 22:42
Dragon_Knight
23q, только что обновил скрипт: viewtopic.php?f=13&t=6640 Можете изучить на основе его.

Если по простому, то строка ":local key [:terminal inkey]" предлагает нажать пользователю кнопку и после сохраняет её ASCII представление в переменную key.
Т.к. я работаю с цифрами, то я сделал так: ":local key ([:terminal inkey] - 48)", - в key сохраняется нажатая кнопка (0, если нажали кнопку 0, 5 если нажали кнопку 5).

Re: Скриптовый язык RouterOS

Добавлено: 05 июн 2016, 00:14
23q
Dragon_Knight писал(а): 23q, только что обновил скрипт: viewtopic.php?f=13&t=6640 Можете изучить на основе его.

Если по простому, то строка ":local key [:terminal inkey]" предлагает нажать пользователю кнопку и после сохраняет её ASCII представление в переменную key.
Т.к. я работаю с цифрами, то я сделал так: ":local key ([:terminal inkey] - 48)", - в key сохраняется нажатая кнопка (0, если нажали кнопку 0, 5 если нажали кнопку 5).

спасибо.