Всем привет.
Возникла необходимость при выполнении скрипта через консоль (import file=) спросить пользователя, хочет он это делать или нет, например: "Install Extra Domain (Block Skype, Hotmain, Dr. Watson and/or Error Reporting) (Y\N) ? : " и пользователю нужно нажать нужную кнопку.
Полазив по wiki, я не нашёл как такое реализовать.
Скриптовый язык RouterOS
- Dragon_Knight
- Сообщения: 1724
- Зарегистрирован: 26 мар 2012, 18:21
- Откуда: МО, Мытищи
- Контактная информация:
Небольшой свод правил логики и ссылок:
- Если устройство имеет Ethernet порт, то оно обязано быть подключено через него. Компьютер, Ноутбук, Телевизор, Принтер, Камера видеонаблюдения, и т.д.
- Если нет возможности протянуть кабель, то найдите её, или страдайте со своими проблемами Wi-Fi дальше.
- Wi-Fi это сеть для мобильных устройств. Если Вы подключили свой шикарный 50" телевизор не кабелем, то без фотоотчёта, когда он лежит у Вас в кармане дальнейшего разговора не получиться. Это относится и ко всем остальным устройствам.
- Если Ваше устройство вызывает вопросы в работе, первое что необходимо делать: NetInstall + дальнейшая настройка вручную.
- Не используйте WebFig или QuickSet - это пути к глюкам и ошибкам. Только SSH или WinBox, и да, - WinBox есть под Android.
- name.rsc - это текстовый файл, и Вы можете его открыть блокнотом.
- Если Вы хотите связаться со мной для ремонта или настройки, то: Telegram ( Не благотворительность ).
- Мой сайт по Mikrotik: Global Zone >> MikroTik.
-
- Модератор
- Сообщения: 3605
- Зарегистрирован: 26 сен 2013, 14:20
- Откуда: НСК
- Контактная информация:
- Dragon_Knight
- Сообщения: 1724
- Зарегистрирован: 26 мар 2012, 18:21
- Откуда: МО, Мытищи
- Контактная информация:
vqd, да, то что нужно. Спасибо
А ещё вопрос. Вот я циклом иду по массиву и выполняю строчку ":if ([find name=$i] = "") do={ add address=127.0.0.1 comment=WinTracking name=$i;". Код выполняется правильно, но если уже есть много записей (15к), то добавление 10 записей таким кодом становиться занятие на минут 10. Если-же не делать такую проверку, то если встречается такая-же запись, получаем исключение и выход их скрипта.
Можно-ли добавлять записи и отслеживать это исключение?
А ещё вопрос. Вот я циклом иду по массиву и выполняю строчку ":if ([find name=$i] = "") do={ add address=127.0.0.1 comment=WinTracking name=$i;". Код выполняется правильно, но если уже есть много записей (15к), то добавление 10 записей таким кодом становиться занятие на минут 10. Если-же не делать такую проверку, то если встречается такая-же запись, получаем исключение и выход их скрипта.
Можно-ли добавлять записи и отслеживать это исключение?
Небольшой свод правил логики и ссылок:
- Если устройство имеет Ethernet порт, то оно обязано быть подключено через него. Компьютер, Ноутбук, Телевизор, Принтер, Камера видеонаблюдения, и т.д.
- Если нет возможности протянуть кабель, то найдите её, или страдайте со своими проблемами Wi-Fi дальше.
- Wi-Fi это сеть для мобильных устройств. Если Вы подключили свой шикарный 50" телевизор не кабелем, то без фотоотчёта, когда он лежит у Вас в кармане дальнейшего разговора не получиться. Это относится и ко всем остальным устройствам.
- Если Ваше устройство вызывает вопросы в работе, первое что необходимо делать: NetInstall + дальнейшая настройка вручную.
- Не используйте WebFig или QuickSet - это пути к глюкам и ошибкам. Только SSH или WinBox, и да, - WinBox есть под Android.
- name.rsc - это текстовый файл, и Вы можете его открыть блокнотом.
- Если Вы хотите связаться со мной для ремонта или настройки, то: Telegram ( Не благотворительность ).
- Мой сайт по Mikrotik: Global Zone >> MikroTik.
-
- Модератор
- Сообщения: 3605
- Зарегистрирован: 26 сен 2013, 14:20
- Откуда: НСК
- Контактная информация:
в микротике есть ексепшн, в вики поищи такую штуку как on-error
Возможно ускорит ибо on-error будет отрабатывать только в момент когда у тебя записи совпадут
Возможно ускорит ибо on-error будет отрабатывать только в момент когда у тебя записи совпадут
Есть интересная задача и бюджет? http://mikrotik.site
- Dragon_Knight
- Сообщения: 1724
- Зарегистрирован: 26 мар 2012, 18:21
- Откуда: МО, Мытищи
- Контактная информация:
vqd, конструкция ":do {} on-error={}" не просто ускоряет, а делает установку практически моментальной.
Спасибо. Скоро обновлю мои скрипты на сайте
Спасибо. Скоро обновлю мои скрипты на сайте
Небольшой свод правил логики и ссылок:
- Если устройство имеет Ethernet порт, то оно обязано быть подключено через него. Компьютер, Ноутбук, Телевизор, Принтер, Камера видеонаблюдения, и т.д.
- Если нет возможности протянуть кабель, то найдите её, или страдайте со своими проблемами Wi-Fi дальше.
- Wi-Fi это сеть для мобильных устройств. Если Вы подключили свой шикарный 50" телевизор не кабелем, то без фотоотчёта, когда он лежит у Вас в кармане дальнейшего разговора не получиться. Это относится и ко всем остальным устройствам.
- Если Ваше устройство вызывает вопросы в работе, первое что необходимо делать: NetInstall + дальнейшая настройка вручную.
- Не используйте WebFig или QuickSet - это пути к глюкам и ошибкам. Только SSH или WinBox, и да, - WinBox есть под Android.
- name.rsc - это текстовый файл, и Вы можете его открыть блокнотом.
- Если Вы хотите связаться со мной для ремонта или настройки, то: Telegram ( Не благотворительность ).
- Мой сайт по Mikrotik: Global Zone >> MikroTik.
-
- Сообщения: 57
- Зарегистрирован: 16 май 2013, 11:21
Dragon_Knight писал(а):Всем привет.
Возникла необходимость при выполнении скрипта через консоль (import file=) спросить пользователя, хочет он это делать или нет, например: "Install Extra Domain (Block Skype, Hotmain, Dr. Watson and/or Error Reporting) (Y\N) ? : " и пользователю нужно нажать нужную кнопку.
Полазив по wiki, я не нашёл как такое реализовать.
vqd писал(а)::put [terminal inkey ]
приведите пример реализации пожалуйся.
- Dragon_Knight
- Сообщения: 1724
- Зарегистрирован: 26 мар 2012, 18:21
- Откуда: МО, Мытищи
- Контактная информация:
23q, только что обновил скрипт: viewtopic.php?f=13&t=6640 Можете изучить на основе его.
Если по простому, то строка ":local key [:terminal inkey]" предлагает нажать пользователю кнопку и после сохраняет её ASCII представление в переменную key.
Т.к. я работаю с цифрами, то я сделал так: ":local key ([:terminal inkey] - 48)", - в key сохраняется нажатая кнопка (0, если нажали кнопку 0, 5 если нажали кнопку 5).
Если по простому, то строка ":local key [:terminal inkey]" предлагает нажать пользователю кнопку и после сохраняет её ASCII представление в переменную key.
Т.к. я работаю с цифрами, то я сделал так: ":local key ([:terminal inkey] - 48)", - в key сохраняется нажатая кнопка (0, если нажали кнопку 0, 5 если нажали кнопку 5).
Небольшой свод правил логики и ссылок:
- Если устройство имеет Ethernet порт, то оно обязано быть подключено через него. Компьютер, Ноутбук, Телевизор, Принтер, Камера видеонаблюдения, и т.д.
- Если нет возможности протянуть кабель, то найдите её, или страдайте со своими проблемами Wi-Fi дальше.
- Wi-Fi это сеть для мобильных устройств. Если Вы подключили свой шикарный 50" телевизор не кабелем, то без фотоотчёта, когда он лежит у Вас в кармане дальнейшего разговора не получиться. Это относится и ко всем остальным устройствам.
- Если Ваше устройство вызывает вопросы в работе, первое что необходимо делать: NetInstall + дальнейшая настройка вручную.
- Не используйте WebFig или QuickSet - это пути к глюкам и ошибкам. Только SSH или WinBox, и да, - WinBox есть под Android.
- name.rsc - это текстовый файл, и Вы можете его открыть блокнотом.
- Если Вы хотите связаться со мной для ремонта или настройки, то: Telegram ( Не благотворительность ).
- Мой сайт по Mikrotik: Global Zone >> MikroTik.
-
- Сообщения: 57
- Зарегистрирован: 16 май 2013, 11:21
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).
спасибо.