分类:脚本编写
发布于 2020-01-31 13:39:48 +0800 CST
当在RouterOS控制台查看参数时候,通常会有如下操作:
[admin@ MikroTik] /interface> print
Flags: D - dynamic, X - disabled, R - running, S - slave
# NAME TYPE ACTUAL-MTU L2MTU MAX-L2MTU
0 R ether1 ether 1500 1580 1022
[admin@ MikroTik] /interface> set 0 name=LAN
Print命令查看的缓冲器获取的内部id号所引用的ID编号,因此如果你要使用查看的数字编号在脚本编辑器使用,将无法执行,如下面脚本:
/system script add name=script1 source={
/ip route set 0 gateway=3.3.3.3
}
脚本并不知道你定义的编号在内部是多少,会丢弃掉这个错误操作。因此需要使用内部ID编号,可以使用as-value ,或者使用find命令。如下实例:
[admin@MikroTik] /ip route> :put [find where dst-address="10.0.0.0/8"]
*1
因此该实例脚本写为如下:
/system script add name=script1 source={
/ip route set *1 gateway=3.3.3.3
}
通过内部ID编号操作并不推荐,这些内部ID会随着各种添加删除操作而变动,因此为什么会推荐使用find命令操作,如下:
/system script add name=script1 source={
/ip route set [find dst-address="0.0.0.0/0"] gateway=3.3.3.3
}
打赏支持
微信

支付宝
