Что не так с переменной

Автоматизация при помощи встроенного скриптового языка и RouterOS API
Barel
Сообщения: 2
Зарегистрирован: 14 янв 2021, 22:52

Что не так с переменной

Сообщение Barel »

Добрый!

Два визуально одинаковых случая. Первый работает, второй нет:

1.

Код: Выделить всё

   :local MyVarLogContent
   :local MyVarComment
   :local MyVarTemp
   :local MyVarLen
   :foreach int in=[/log find ] do={
         :set MyVarLen [:len [/log get $int message]]
       #:set $MyVarTemp [:pick [/log get $int message] 0 17]
         :set $MyVarTemp "ХХ:ХХ:ХХ:ХХ:ХХ:ХХ"
         :set MyVarComment [/interface wireless access-list get [find mac-address=$MyVarTemp] comment]  
         :set MyVarTemp [:pick [/log get $int message] 17 $MyVarLen]
         :set MyVarTemp ($MyVarComment .$MyVarTemp)
         :set MyVarLogContent ("$MyVarLogContent\r\n" .[/log get $int time]. " - " .$MyVarTemp)
   }
2.

Код: Выделить всё

   :local MyVarLogContent
   :local MyVarComment
   :local MyVarTemp
   :local MyVarLen
   :foreach int in=[/log find ] do={
         :set MyVarLen [:len [/log get $int message]]
         :set $MyVarTemp [:pick [/log get $int message] 0 17]
       #:set $MyVarTemp "60:67:20:F7:18:68"
         :set MyVarComment [/interface wireless access-list get [find mac-address=$MyVarTemp] comment]  
         :set MyVarTemp [:pick [/log get $int message] 17 $MyVarLen]
         :set MyVarTemp ($MyVarComment .$MyVarTemp)
         :set MyVarLogContent ("$MyVarLogContent\r\n" .[/log get $int time]. " - " .$MyVarTemp)

Код: Выделить всё

interface wireless access-list get [find mac-address=$MyVarTemp
работает еслия переменную задаю явно и не работает если я вытягиваю данные с помощью get. И в том и в другом варианте переменная получается типа строка, и содержимое идентично (по крайней мере выводя ее содержимое на экран!)
Куда копать?
}
Последний раз редактировалось Barel 14 янв 2021, 23:17, всего редактировалось 1 раз.
Barel
Сообщения: 2
Зарегистрирован: 14 янв 2021, 22:52

Re: Что не так с переменной

Сообщение Barel »

Целый день мучался, со свежей головой сам себе нашел за пять минут..

Код: Выделить всё

   :local MyVarLogContent
   :local MyVarComment
   :local MyVarTemp
   :local MyVarLen
   :foreach int in=[/log find ] do={
         :set MyVarLen [:len [/log get $int message]]
         :set $MyVarTemp [:pick [/log get $int message] 0 17]
         :do {:set $MyVarComment [/interface wireless access-list get [find mac-address=$MyVarTemp] comment] } on-error={:set $MyVarComment $MyVarTemp}
         :set MyVarTemp [:pick [/log get $int message] 17 $MyVarLen]
         :set MyVarTemp ($MyVarComment .$MyVarTemp)
         :set MyVarLogContent ("$MyVarLogContent\r\n" .[/log get $int time]. " - " .$MyVarTemp)
   }