Как переформатировать время в имени файла конфига на микротике из 00:00:00 в 00-00-00?
Можно я попробую. 
Сам не писал скрипты для микротика, но писал для других систем. Давайте посмотрим на строки:
1) :global thisdate [/system clock get date]
2) :global time [/system clock get time]
3) :global datetimestring ([:pick $thisdate 0 3] ."-" . [:pick $thisdate 4 6] ."-" . [:pick $thisdate 7 11])
1) Мы получаем дату и запихиваем ее в переменную в каком то виде
2) В переменную time мы просто запихиваем время в каком то виде
3) В переменную datetimestring  мы ФОРМАТИРУЕМ и запихиваем дату в нужном нам виде. 
Следовательно, нам нужно то же самое проделать и со временем. Что бы сделал Я =)
1) Создал переменную по типу: 
:global timestring 
2) обработал бы правилом, как указал товарищ выше - ([:pick $thisdate 0 3] ."-" . [:pick $thisdate 4 6] ."-" . [:pick $thisdate 7 11])
Если pick - это вырез подстроки заданного диапазона из переменной (thisdate ), то можно понять что с начала вырезается с 0 по 3 символ, объединяется с символом " - " , дальше с 4 по 6 символ из переменной , потом объединяем его с " - " , и потом берем последнюю часть с 7 по 11 символ и объединяем его с " - ".
Вроде пока понятно ?? 
ТОгда, ПО ВАШИМ словам , если переменная time выдает 00:00:00, где допустим ЧЧ.ММ.СС впрочем не важно, то для модификации вам надо добавить строку после time
 :global timestring ([:pick $thisdate 0 1] ."-" . [:pick $thisdate 3 4] ."-" . [:pick $thisdate 6 7])
И далее поправить строку формирования имени выходного файла :
Было так - 
:global backupfilename ([/system identity get name]."_".$datetimestring."_$time")
Станет так - 
:global backupfilename ([/system identity get name]."_".$datetimestring."_$timestring ")
Попробуйте
Сами сможете переписать и применить эту функцию для ваших нужд?:global replaceChar do={
  :for i from=0 to=([:len $1] - 1) do={
    :local char [:pick $1 $i]
    :if ($char = $2) do={
      :set $char $3
    }
    :set $output ($output . $char)
  }
  :return $output
}