• Как переформатировать время в имени файла конфига на микротике из 00:00:00 в 00-00-00?

    @fitbikeco
    как вариант
    :local time ([:pick [system clock get time] 0 2]."-".[:pick [system clock get time] 3 5]."-".[:pick [system clock get time] 6 8]);
    :local date ([:pick [/system clock get date] 7 11] . [:pick [/system clock get date] 0 3] . [:pick [/system clock get date] 4 6]);
    :local vROS [system routerboard get current-firmware ];
    :local DevName [:pick [system identity get] [:find "=" ] ];
    /system backup save dont-encrypt=yes name="/$date\_$time\_$vROS\_backup\_$DevName";
    /export file="/$date\_$time\_$vROS\_export\_full\_$DevName";
    /system export file="/$date\_$time\_$vROS\_export\_system\_$DevName";
    /tool export file="/$date\_$time\_$vROS\_export\_tool\_$DevName";
    /interface export file="/$date\_$time\_$vROS\_export\_interface\_$DevName";
    /ip export file="/$date\_$time\_$vROS\_export\_ip\_$DevName";
    /ipv6 export file="/$date\_$time\_$vROS\_export\_ipv6\_$DevName";


    одной строкой для теста в терминале
    :local time ([:pick [system clock get time] 0 2]."-".[:pick [system clock get time] 3 5]."-".[:pick [system clock get time] 6 8]);:local date ([:pick [/system clock get date] 7 11] . [:pick [/system clock get date] 0 3] . [:pick [/system clock get date] 4 6]);:local vROS [system routerboard get current-firmware ];:local DevName [:pick [system identity get] [:find "=" ] ];/system backup save dont-encrypt=yes name="/$date\_$time\_$vROS\_backup\_$DevName";/export file="/$date\_$time\_$vROS\_export\_full\_$DevName";/system export file="/$date\_$time\_$vROS\_export\_system\_$DevName";/tool export file="/$date\_$time\_$vROS\_export\_tool\_$DevName";/interface export file="/$date\_$time\_$vROS\_export\_interface\_$DevName";/ip export file="/$date\_$time\_$vROS\_export\_ip\_$DevName";/ipv6 export file="/$date\_$time\_$vROS\_export\_ipv6\_$DevName";


    проверено на RouterOS 7.1.1 и
    6.49.2
  • Как переформатировать время в имени файла конфига на микротике из 00:00:00 в 00-00-00?

    @fitbikeco
    примерно так
    {
    :local 1 (":") ;
    :local 2 ("-") ;
    :local output ;
    :local time ([/system clock get time]);
      :for i from=0 to=([:len $time] - 1) do={
        :local char [:pick $time $i] ;
        :if ($char = $1) do={
          :set $char $2 ;
        } ;
        :set $output ($output . $char)
      } ;
      :return $output ;
    };


    одной строкой для теста в терминале
    {:local 1 (":") ;:local 2 ("-") ;:local output ;:local time ([/system clock get time]); :for i from=0 to=([:len $time] - 1) do={ :local char [:pick $time $i] ; :if ($char = $1) do={ :set $char $2 ; } ; :set $output ($output . $char) } ; :return $output ;};


    global - лишняя нагрузка на cpu
    if - лишняя нагрузка на cpu

    можно так
    :local time ([:pick [system clock get time] 0 2]."-".[:pick [system clock get time] 3 5]."-".[:pick [system clock get time] 6 8]); :put $time


    протестировано на RouterOS 7.1.1