New command in RouterOs 7

Well, that’s easy. In terms of script-specific commands (e.g. not tied to a protocol/service), the only new ones (which are doc’d in link above already)

[:timestamp] - related to the :tonsec (and shown above), returns a “time” type contain the elapsed time from epoch (Jan 1, 1970), internally time is stored in nanoseconds.

[:rndnum from=0 to=1] - returns random “num” type (integer) using to= and from=

[:rndstr length=1] - returns a random “str” of length=

There is also…

/console/inspect - this is an “easter egg” – but I have an partial example of usage here:
http://forum.mikrotik.com/t/feature-request-openapi-for-rest-api/149360/1

/task, which is like UNIX “bg”, “fg”, and “jobs” but I haven’t used it.

[:retry] is also new I believe.

:retry delay=1s max=3 on-error={:put "got an error"} command={:put [/system/identity/get name]}
# Mikrotik
:retry delay=1s max=3 on-error={:put "I give up!"} command={:put "trying..."; :error "cause error"}                                
# trying...
# trying...
# trying...
# I give up!

Not directly scripting-specific, but “as-value” is new option in V7 for “/tool/snmp-get”, which can get values from SNMP OID into a script without parsing required in V6:

{
   :local interfaceOneName [/tool/snmp-get oid=.1.3.6.1.2.1.2.2.1.2.1 address=127.0.0.1 community=public as-value] 
   :put $interfaceOneName
   :put ($interfaceOneName->"value")
}
# oid=1.3.6.1.2.1.2.2.1.2.1;type=octet-string;value=ether1
# ether1

note: requires /ip/snmp being enabled, and likely using different community name for better security

Similarly [:execute] now has “as-string” as option, which make it synchronous (e.g. waits for script to finished BEFORE return with new “as-string”)