/ip firewall filter
# это меняет параметр правила
set $x dst-port=876
# это меняет значение переменной
:set x "dst-port=876"
Если скриптом будет пользоваться больше одного человека или более нескольких раз - я бы рекомендовал везде ставить двоеточие, дабы не было разночтений.
/prefix/ - ":" or "/" character which indicates if a command is ICE or path. It may not be required.
И тут двоеточие говорит, что это именно команда. Иначе может быть воспринято как переменная.
Погружаясь в изучение вопроса, не все так однозначно....
Если так ( c : ), то поиск идет по текущему пути ( /ip address get...)
Такая неоднозначность у них появилась после какой то 4.* версии. Что то переработали, а что то оставили для совместимости со старыми скриптами.
Кто то пишет типа:
Если команды идут в блоке команд - перед каждой командой ставится : (чтобы было понятно, что это блок команд).
Если использовать команды без : - тогда эта команда должна быть встроенной командой RouterOS. If - встроенная команда, поэтому допускается ее использование как с : так и без неё.
Получается просто для визуализации. Правда как то сомнительно, что так читабильней.