Mikrotik ROS脚本语法入门
ROS也可称为是Route Operation System,意为"软件路由器".
一般认为用普通PC安装一套专用的路由器程序组成的系统称为软件路由器,PC电脑+免费的软件=专业的软件路由器
ROS 脚本 注解
四种变量
global - 定义全局变量, 可以要所有的 脚本 中调用共享
local - 定义本地变量,只能在其所要的 脚本 下调用,不能被其它 脚本 共享
loop index variables - 定义在for或foreach里的索引号变量
monitor variables - 监视变量
ROS算术操作
- 负号;相减。
! 逻辑非。
/ 相除。
. 连接。两个符串的连接,添加元素到列表
^ 异或(XOR)
~ 取反
* 相剩
& 与(AND)
&&逻辑与
+ 相加
< 小于
<<向左位移
<=小于等于
> 大于
>=大于等于
>>向右位移
| 或
||逻辑或
ROS说明书里的例子:
计算顺序
[admin@MikroTik]> :put (10+1-6*2=11-12=2+(-3)=-1)
false
[admin@MikroTik]> :put (10+1-6*2=11-12=(2+(-3)=-1))
true
逻辑非
[admin@MikroTik]> :put (!true)
false
[admin@MikroTik]> :put (!(2>3))
true
数位取反
[admin@MikroTik]> :put (~255.255.0.0)
0.0.255.255
加法
[admin@MikroTik]> :put (3ms + 5s)
00:00:05.003
[admin@MikroTik]> :put (10.0.0.15 + 0.0.10.0)
cannot add ip address to ip address
[admin@MikroTik]> :put (10.0.0.15 + 10)
10.0.0.25
减法
[admin@MikroTik]> :put (15 - 10)
5
[admin@MikroTik]> :put (10.0.0.15 - 10.0.0.3)
12
[admin@MikroTik]> :put (10.0.0.15 - 12)
10.0.0.3
[admin@MikroTik]> :put (15h - 2s)
14:59:58
乘法
[admin@MikroTik]> :put (12s * 4)
00:00:48
[admin@MikroTik]> :put (-5 * -2)
10
除法
[admin@MikroTik]> :put (10s / 3)
00:00:03.333
[admin@MikroTik]> :put (5 / 2)
2
[admin@MikroTik]> :put (0:0.10 / 3)
00:00:02
比较
[admin@MikroTik]> :put (10.0.2.3<=2.0.3.10)
false
[admin@MikroTik]> :put (100000s>27h)
true
[admin@MikroTik]> :put (60s,1d!=1m,3600s)
true
[admin@MikroTik]> :put (bridge=routing)
false
[admin@MikroTik]> :put (yes=false)
false
[admin@MikroTik]> :put (true=aye)
false
逻辑与 AND, 逻辑或 OR
[admin@MikroTik]> :put ((yes && yes) || (yes && no))
true
[admin@MikroTik]> :put ((no || no) && (no || yes))
false
数位与AND, 或OR, 异或XOR
[admin@MikroTik]> :put (10.16.0.134 & ~255.255.255.0)
0.0.0.134
位移操作
[admin@MikroTik]> :put (~((0.0.0.1 << 7) - 1))
255.255.255.128
连接操作
[admin@MikroTik]> :put (1 . 3)
13
[admin@MikroTik]> :put (1,2 . 3)
1,2,3
[admin@MikroTik]> :put (1 . 3,4)
13,4
[admin@MikroTik]> :put (1,2 . 3,4)
1,2,3,4
[admin@MikroTik]> :put ((1 . 3) + 1)
14
[admin@MikroTik]> :seta "It's "
[admin@MikroTik]> :put ($a . OK)
It's OK
ROS 脚本 保留字
beep execute global list pick time toip typeof
delay find if local put toarray tonum while
do for led log resolve tobool tostr
environment foreach len nothing set toid totime
:beep length=2s frequency=10000
产生2秒10kHz的音频
length缺省值为100ms
frequency缺省值为1000Hz
:set a "/int dis lan/n/int dis wan"
:execute $a
执行多条命令,例子里执行了两条命令。/n是换行
:global
定义全局变量
:list interface
显示相关命令。显示当前目录及子目录下有关interface的命令
:pick
取字符串或数组的某一断。字符串(数组)的第一个为0。
[admin@MikroTik]>:put [:pick "I love you" 2 6]
love
:time
执行命令所需的时间
[admin@MikroTik]> :put [:time [:resole www.sina.com.cn]]
00:00:00.006
执行解析www.sina.com.cn这个域名所需的时间
toip toarray tonum tobool tostr toid totime
转换值类型
:delay 3
延时3秒,缺省为1秒
:find
查找字符串或数组中第一个出现查找内容的位置
[admin@MikroTik]>:put [:find abcdcba cd]
2
[admin@MikroTik]>:put [:find "1,2,3,4,3,2,1" 2]
1
:put
输出到屏幕上,上面就很多例子了。
:if
条件选择
[admin@MikroTik]>:if(1<2) do={:put true}
true
如果条件为真,执行do={}里面的命令
[admin@MikroTik]>:if(1>2) do={:put true} else={:put flase}
flase
如果条件为真,执行do={}里面的命令,否则执行else={}里有命令
:local
定义本地变量
:while
条件为真时循环执行do={}里的 脚本 命令
[admin@MikroTik]>:set i 0;:while($i<5) do={:put $i;:set i ($i+1)}
0
1
2
3
4
5
:for
循环执行do={}里的 脚本 命令
:for i from=1 to=100 step=30 do={:put $i}
1
31
61
91
:foreach
在集合(数组)里循环执行do={}里的 脚本 命令
:foreach i in=[/interface find type=ether] do={:put [/interface get $i name]}
ether1
ether2
ether3
ether4
在[/interface find type=ether]的集合(类型为ether的interface ID)循环输出
interface的名称。我这时有四张网卡
:log 日志类型 日志内容
写文本到日志(script log)
类型在/system logging里可以找到
:log info "系统信息"
到LOG里查查运行结果吧
:resolve
解析域名的IP地址
[admin@MikroTik] > :put [:resolve www.sina.com.cn]
61.172.201.240
:environment print
显示所有变量及其值
:len
字符串或数组的长度
[admin@MikroTik] > :put [:len hello]
5
[admin@MikroTik] > :put [:len "1,2,23,65,54,6"]
6
:nothing
空值。nothing不等0,不等于空字符""
:find abc a的结果是0
:find abc d的结果是nothing
:set
赋值
[admin@MikroTik] > :set a test
将abc字符赋给变量a
[admin@MikroTik] > :put $a
test
[admin@MikroTik] > :put a
a
引用变量的值要在变量前面加$
相关文章

售价599元起! 华为路由器X1/Pro发布 配置与区别一览
华为路由器X1/Pro发布,有朋友留言问华为路由X1和X1 Pro怎么选择,关于这个问题,本期图文将对这二款路由器做了期参数对比,大家看看哪款才是你的理想选择2025-04-17
路由器安装以后发现不能上网,这可能是由于路由器未拨号、MAC地址绑定等原因所致,下面我们就来看看详细解决办法2025-04-09
在现代生活中,路由器已成为我们工作和生活的必需品,然而,当路由器出现问题时,我们往往束手无策,本文将为您提供一套实用的路由器故障排除指南,助您轻松应对各种常见问2025-04-09
支持触屏的软路由? GL.iNe BE3600路由器拆机评测
GL.iNet广联智通推出的Wi-Fi 7便携式无线路由器Slate 7横空出世,网速直接起飞!这速度,快到你怀疑人生!但问题来了,这玩意儿真有那么神?详细请看下文测评2025-03-31
TPLINK TL7DR7260 v2.0和v1.0有什么区别? 两款路由器拆机测评
TL-7DR7260易展版有两个版本,分别是v2.0和v1.0,这两个版本有什么区别?下面我们就来看看详细的拆机对比2025-03-31
CPU决定了不能给你10G口! TP-LINK TL-7DR7280路由器拆机测评
实力与颜值并存的TP-Link TL-7DR7280易展Turbo版以够用问准则,是目前市面上好评非常多、用户群体非常广的一款无线路由器,性能稳定,功能强悍,给你最可靠的网络2025-03-31
高性价比WiFi6路由+全屋覆盖穿墙王! 网件RAX50路由器全面测评
网件RAX50路由器表现如何?确实,它以稳定高速的传输能力,让无线连接体验变得轻松愉快,详细测评数据如下图文所述2025-03-15
WiFi6时代来临! 华三H3C NX54路由器还值得购买吗?
WiFi6时代已经来临,众多路由器厂商也纷纷推出了兼容WiFi6协议的路由器,今天我们将深入体验H3C NX54路由器,这款由知名企业H3C新华三集团推出的家用路由器2025-03-14
玩游戏最怕什么?当然是卡顿!延迟!关键时刻掉线简直心态爆炸,该怎么选电竞路由器呢?路由器这玩意儿,可不是越贵越好,适合自己的才是王道,下面我们推荐八款适合玩游戏2025-03-14
FiberHome 5G CPE移动路由器值得入手吗? 烽火5g路由器性能测评
FiberHome烽火 5G CPE移动路由器支持双模4G/5G全网通,支持WiFi 6双频,配备双千兆网口,无线速率高达1800Mbps,这款路由器性能如何?值得购买吗?详细如下2025-03-14












最新评论