Порой есть задача - запросить данные от пользователя, оказывается в Mikrotik такое тоже возможно. Описал простенькую функцию с параметрами:
- QstUser - Текст вопроса
- VarName - Имя переменной куда будет помещено введенное значение
- DefaultValue - Значение по-умолчанию (на случай пустого ввода)
- LenValue - Минимальная длина ввода (например pass-phrase для экспорта сертификата не может быть меньше 8 символов)
# Example:
# :global UserName ""
# $PromtInput QstUser="\r\nInsert new username" VarName="UserName" DefaultValue=UserX LenValue=4
:local PromtInput do={
:local readinput do={:return}
if ($LenValue>0) do={
:set $QstUser ("$QstUser. Minimum length $LenValue simbols")
}
if ([:len $DefaultValue]>0) do={
:set $QstUser ("$QstUser. \r\n(default - $DefaultValue)")
}
:put ("$QstUser:")
:local UserPromt [$readinput]
if ([:len $UserPromt]>0) do={
[:parse "global $VarName;:set $VarName $UserPromt"]
if (($LenValue>0) and [:len $UserPromt]<$LenValue) do={
:error message="You entered only $[:len $UserPromt] symbols instead of $LenValue minimum required. Stop program"
}
} else={
if ([:len $DefaultValue]>0) do={
[:parse "global $VarName;:set $VarName $DefaultValue"]
} else={
:error message="You didn't enter anything. Stop program"
}
}
}
Если добавить рекурсию с вопросом, то можно избежать выхода из программы при вводе неудовлетворяющему требованиям. Но мне не надо, поэтому я пас
Комментариев нет:
Отправить комментарий