# 定义开始和结束的列表需要,这里是101-119
# 定义一个临时变量用来存储获取到列表名称
:local liSta
:local liEnd
# 设定开始和结束序号
:set $liSta 101
:set $liEnd 119
# 遍历地址表,获取当前的地址表的名称
:foreach i in=[/ip firewall address-list find] do={
:local lsList
:local liList
:local lsPrep
:set $lsList [/ip firewall address-list get $i list];
:set $lsPrep [:tostr [:pick $lsList 0 4]];
# 判断前缀是否符合
:if ( $lsPrep = "list" ) do={
# 如果是最后一个列表名称,则更改为最开头的名称
:if ( $lsList = "list$liEnd" ) do={
[/ip firewall address-list set $i list="list$liSta"];
}
# 如果是其他的,则直接加1,调到下一个列表
:if ( $lsList != "list".$liEnd ) do={
:set $liList [:tonum [:pick $lsList 4 7]];
# 判断要小于结束数
:if ( $liList < $liEnd ) do={
:set $liList ($liList+1);
# :log info $liList;
[/ip firewall address-list set $i list="list$liList"];
}
}
}
}
MK的脚本语法坑太多,写一个脚本耗时太长,记录下来。