Информация
Услуги
  • Внедрение
  • Настройка
  • Поддержка
  • Ремонт
Контакты
Новинка
Распродажа
Новости
Доставка
Оплата
Загрузки
  • Прошивки
    • WinBox
    • RouterOS
    • Мобильные приложения MikroTik
    • Архив
  • Changelogs
  • RouterOS
  • Мобильные приложения MikroTik
  • Архив
Форум
Настройка
    info@mikrotik.moscow
    +7 495 320-55-52
    Заказать звонок
    Mikrotik.moscow
    Каталог
    • Акции
      Акции
    • Маршрутизаторы
      Маршрутизаторы
    • Коммутаторы
      Коммутаторы
    • Радиомосты и уличные точки доступа
      Радиомосты и уличные точки доступа
    • Wi-Fi для дома и офиса
      Wi-Fi для дома и офиса
    • LTE/5G
      LTE/5G
    • Powerline адаптеры
      Powerline адаптеры
    • IoT устройства
      IoT устройства
    • Оборудование 60 ГГц
      Оборудование 60 ГГц
    • Материнские платы RouterBOARD
      Материнские платы RouterBOARD
    • Корпуса
      Корпуса
    • Интерфейсы
      Интерфейсы
    • SFP/QSFP трансиверы
      SFP/QSFP трансиверы
    • Аксессуары
      Аксессуары
    • Антенны
      Антенны
    • Архив
      Архив
    Войти
    0 Сравнение
    0 Избранное
    0 Корзина
    Скачать WinBox Скачать Прошивки Форум > RouterOS Форум > SwOS Форум > Железо
    Mikrotik.moscow
    Каталог
    Войти
    0 Сравнение
    0 Избранное
    0 Корзина
    Mikrotik.moscow
    Телефоны
    +7 495 320-55-52
    Заказать звонок
    0
    0
    0
    Mikrotik.moscow
    • +7 495 320-55-52
      • Назад
      • Телефоны
      • +7 495 320-55-52
      • Заказать звонок
    • info@mikrotik.moscow
    • г. Москва, ул. Бакунинская, 84
    • Пн-Пт: 09-00 до 18-00
      Сб-Вс: выходной


    • Кабинет
    • 0 Сравнение
    • 0 Избранное
    • 0 Корзина
    Главная
    Форум
    RouterOS
    macros bug

    macros bug

    Форумы: RouterOS, Аппаратное обеспечение, SwOS, Обратная связь, Объявления, Сторонние инструменты
    Поиск  Пользователи  Правила  Войти
    Страницы: 1
    RSS
    macros bug, RouterOS
     
    cmdorexe
    Guest
    #1
    0
    21.03.2019 23:34:00
    как пример if+else не работает global test yes
    /log info [:typeof $test]
    /log info [:typeof yes]
    /log info ( yes = yes )
    /log info ( $test = yes )
    global print do={
     if ( $test = yes) do={/log info yes} else={/log info no}
    }
    $print
    global test no
    $print Я не понимаю почему? У кого-то есть идеи по этому поводу?
     
     
     
    cmdorexe
    Guest
    #2
    0
    27.06.2019 12:13:00
    это строка, а не булево значение! Я пишу о булевых значениях в скриптах!
     
     
     
    Jotne
    Guest
    #3
    0
    27.06.2019 16:46:00
    Тогда я не понимаю, что ты пытаешься сделать.
     
     
     
    Chupaka
    Guest
    #4
    0
    29.06.2019 04:58:00
    Так что именно не работает?
     
     
     
    Chupakabra303
    Guest
    #5
    0
    18.04.2019 08:42:00
    Объявите глобальную переменную перед использованием в функции! global print do={ :global test if ( $test = yes) do={/log info yes} else={/log info no} }
     
     
     
    cmdorexe
    Guest
    #6
    0
    17.07.2019 17:04:00
     
     
     
    Jotne
    Guest
    #7
    0
    18.04.2019 08:56:00
    Не сработает, нужно использовать двойные кавычки, да вот так: if ( $test = "yes") do={/log info "yes"} else={/log info "no"} Чтобы протестировать: :global test "yes"
    [
    :global test
    if ( $test = "yes") do={:put "true"} else={:put "false"}
    ] выводит true на экран, а :global test "no"
    [
    :global test
    if ( $test = "yes") do={:put "true"} else={:put "false"}
    ] выводит false на экран
     
     
     
    Jotne
    Guest
    #8
    0
    17.07.2019 18:13:00
    @cmdorexe Ты просто показываешь код и не отвечаешь на вопрос. Что именно не работает? Если ты пытаешься запустить скрипт из командной строки, его нужно обернуть в {} Пример: local test "more" :put $test Нужно сделать так: { :local test "more" :put $test } Это тоже работает: [ :local test "more" :put $test ]
     
     
     
    Chupaka
    Guest
    #9
    0
    18.07.2019 16:33:00
    О, понял. Это сработает: :global test yes  
    :global print do={  
     :global test  
     if ( $test = yes) do={/log info yes} else={/log info no}  
    }  
    $print  
    :global test no  
    $print Используя “:global test”, ты говоришь, что нужно использовать глобальную переменную ‘test’ в текущей видимости (в теле функции).
     
     
     
    Chupaka
    Guest
    #10
    0
    18.07.2019 16:35:00
    Или вы можете передать переменную в функцию явно: :global test yes :global print do={ if ( $test = yes) do={/log info yes} else={/log info no} } $print test=$test :global test no $print test=$test
     
     
     
    cmdorexe
    Guest
    #11
    0
    19.07.2019 05:45:00
    Вау, классный трюк. Я никогда не знал.
     
     
     
    Страницы: 1
    Читают тему
    +7 495 320-55-52
    info@mikrotik.moscow
    Электрозаводская, Бауманская
    Москва, ул. Бакунинская, 84с21
    Конфиденциальность Оферта
    © 2025 «Mikrotik.Moscow»
    Главная Каталог 0 Корзина 0 Избранные Кабинет 0 Сравнение Акции Контакты Услуги Бренды Отзывы Компания Лицензии Документы Реквизиты Поиск Блог Обзоры