Примитивная задача, почему нельзя было придумать что-нибудь типа:
/system script environment clear
или
/system script environment remove *
или
:environment clear
???
приходится описывать так
:foreach var in=[/system script environment print as-value] do={
/system script environment remove ($var->".id")
}
Mikrotik remove all global variables and function
усложнили задачу, есть некоторая вероятность удаления переменных других скриптов, поэтому задаем себе правило - во всем глобальном иметь префикс, удалять будем именно по нему
# в самом начале объявляем локальную, просто чтобы видеть ее
:local pref "chksm"
# далее наша какая то программа начинается
:global chksmMyVar false
:local MyLocalVar 0
....
:global chksmTest do={
:put "TEST"
}
....
:local chksmTestLocal do={
:put "TEST LOCAL"
}
....
# далее наша какая то программа заканчивается
# удаляем глобальные переменные
:foreach var in=[/system script environment print as-value] do={
:local prefVar [:pick ($var->"name") 0 [:len $pref]];
:if ($prefVar=$pref) do={
/system script environment remove ($var->".id")
}
}
Комментариев нет:
Отправить комментарий