Некоторые картинки не загружаются из РФ и РК, используйте VPN.

суббота, 24 декабря 2022 г.

Mikrotik script Ввод от пользователя

 Порой есть задача - запросить данные от пользователя, оказывается в 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"
		}
	}
}

Если добавить рекурсию с вопросом, то можно избежать выхода из программы при вводе неудовлетворяющему требованиям. Но мне не надо, поэтому я пас

Комментариев нет:

Отправить комментарий