当在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

}