Информация
Услуги
  • Внедрение
  • Настройка
  • Поддержка
  • Ремонт
Контакты
Новинка
Распродажа
Новости
Доставка
Оплата
Загрузки
  • Прошивки
    • 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
    Скриптинг с циклом for each

    Скриптинг с циклом for each

    Форумы: RouterOS, Аппаратное обеспечение, SwOS, Обратная связь, Объявления, Сторонние инструменты
    Поиск  Пользователи  Правила  Войти
    Страницы: 1
    RSS
    Скриптинг с циклом for each, RouterOS
     
    rubence
    Guest
    #1
    0
    20.02.2016 19:36:00
    У меня есть несколько файлов, каждый начинается с префикса "mikrotik", например mikrotik-1234, mikrotik-5678 и так далее. Нужно написать скрипт с циклом типа "for each $filename do /tool fetch $filename", чтобы отправить все файлы через FTP с тем же именем, используя команду /tool fetch. Заранее спасибо!
     
     
     
    arammal
    Guest
    #2
    0
    04.09.2020 09:36:00
    Привет! Не мог бы ты прислать мне свой скрипт? Я сам уже несколько раз пробовал, но безуспешно. Вот мой вариант:

    :local filename  
    :foreach filename in=[/file find where name~“routeros-mipsbe”] do={
    :set $filename [/file get $file name];
    /tool fetch mode=ftp upload=no address=x.x.x.x port=x user=“x” password=“x” src-path=$filename dst-path=“routeros-mipsbe-6.47.2.npk” keep-result=yes  
    }
     
     
     
    msatter
    Guest
    #3
    0
    04.09.2020 12:04:00
    Привет, любитель менять темы! http://forum.mikrotik.com/t/syntax-to-wildcard-the-rest-of-path/142735/1 :set $filename [/file get $file name];
    /tool fetch ...................dst-path="routeros-mipsbe-6.47.2.npk" keep-result=yes  
    :set $filename [/file get $file name];
    /tool fetch .............dst-path="$filename" keep-result=yes  
    Ты заранее не знаешь имя исходного файла, поэтому и имя назначения тоже неизвестно.
     
     
     
    arammal
    Guest
    #4
    0
    04.09.2020 15:26:00
    тоже пробовал, но безуспешно,
     
     
     
    msatter
    Guest
    #5
    0
    04.09.2020 16:56:00
    Я указал лишь на логическую ошибку. Следующая ошибка — использование foreach, при котором счетчик в цикле изменяется на другое значение. И, наконец, нельзя использовать имена переменных, которые уже заняты в RouterOS. Тебе стоит внимательнее проверять свой код и выбирать уникальные имена для переменных.
     
     
     
    msatter
    Guest
    #6
    0
    04.09.2020 17:05:00
    {
    :local fileName;
    :foreach fileCounter in=[/file find where name~"routeros-mipsbe"] do={
    :set $fileName [/file get $fileCounter name];
    /tool fetch mode=ftp upload=no address=x.x.x.x port=x user="x" password="x" src-path=$fileName dst-path=$fileName keep-result=yes
    } Я не могу это проверить, и честно говоря, это для меня слишком сложно, чтобы понять, как это работает.
     
     
     
    arammal
    Guest
    #7
    0
    04.09.2020 17:17:00
    Спасибо за вашу помощь! Моя цель — написать скрипт для скачивания пакетов с удалённого RouterOS (x.x.x.x) с помощью /tool fetch mode=ftp... В src-path мне нужно использовать подстановочный знак для оставшейся части имени пакета. Например, если имя пакета «routeros-mipsbe-6.47.2.npk», то в src-path я хочу указать просто «routeros-mipsbe-WHATEVER». Что мне использовать в Mikrotik скрипте как выражение или символ вместо WHATEVER? Обратите внимание, что этот скрипт (/tool fetch mode=ftp upload=no address=x.x.x.x port=x user=“x” password=“x” src-path=“/routeros-mipsbe-6.47.2.npk” dst-path=“routeros-mipsbe-6.47.2.npk” keep-result=yes;) работает отлично!
     
     
     
    msatter
    Guest
    #8
    0
    04.09.2020 19:48:00
    Моей адаптации нужен дополнительный “}” в последней строке. Тебе нужно проверить, какое значение в $fileName: :set $fileName [/file get $fileCounter name]; :put $fileName; Чтобы понять, нужно ли ещё добавить “/” перед src-path src-path=“/$fileName”
     
     
     
    msatter
    Guest
    #9
    0
    05.09.2020 06:50:00
    {
    :local fileName
    :foreach fileCounter in=[/file find name~"routeros-mipsbe"] do={
    :set $fileName [/file get $fileCounter name]
    :do {
    /tool fetch mode=ftp upload=no address=x.x.x.x port=x user="x" password="x" src-path="/$fileName" dst-path="/$fileName" keep-result=yes
    :log info "Файл скопирован: $fileName"
    } on-error={ :log warning "Файл с именем $fileName не был скопирован."}
    }}
     
     
     
    Страницы: 1
    Читают тему
    +7 495 320-55-52
    info@mikrotik.moscow
    Электрозаводская, Бауманская
    Москва, ул. Бакунинская, 84с21
    Конфиденциальность Оферта
    © 2025 «Mikrotik.Moscow»
    Главная Каталог 0 Корзина 0 Избранные Кабинет 0 Сравнение Акции Контакты Услуги Бренды Отзывы Компания Лицензии Документы Реквизиты Поиск Блог Обзоры