Работа со строками и подстроками в скрипте

Раздел для тех, кто начинает знакомиться с MikroTik
Правила форума
Как правильно оформить вопрос.
Прежде чем начать настройку роутера, представьте, как это работает. Попробуйте почитать статьи об устройстве интернет-сетей. Убедитесь, что всё, что Вы задумали выполнимо вообще и на данном оборудовании в частности.
Не нужно изначально строить Наполеоновских планов. Попробуйте настроить простейшую конфигурацию, а усложнения добавлять в случае успеха постепенно.
Пожалуйста, не игнорируйте правила русского языка. Отсутствие знаков препинания и неграмотность автора топика для многих гуру достаточный повод проигнорировать топик вообще.

1. Назовите технологию подключения (динамический DHCP, L2TP, PPTP или что-то иное)
2. Изучите темку "Действия до настройки роутера".
viewtopic.php?f=15&t=2083
3. Настройте согласно выбранного Вами мануала
4. Дочитайте мануал до конца и без пропусков, в 70% случаев люди просто не до конца читают статью и пропускают важные моменты.
5. Если не получается, в Winbox открываем терминал и вбиваем там /export hide-sensitive. Результат в топик под кат, интимные подробности типа личных IP изменить на другие, пароль забить звездочками.
6. Нарисуйте Вашу сеть, рисунок (схему) сюда. На словах может быть одно, в действительности другое.
Ответить
laawert
Сообщения: 21
Зарегистрирован: 17 ноя 2017, 11:18

Подскажите добрые люди, есть ли в RouterOS дополнительные возможности, кроме pick и len для работы со строками и подстроками?

Есть задача по части имени файла, создавать директорию.
Часть в имени файла соответсвует YYYYMMDD, позиции символов заранее не известны.

Была идея загнать имя файла в переменную (что не сложно), и перебрать все ее символы через foreach, но не хватило знаний как это сделать.

Буду признателен за подсказку.


laawert
Сообщения: 21
Зарегистрирован: 17 ноя 2017, 11:18

Нашел подсказку в одном из скриптов в коллекции на этом сайте. Решение пока кривенькое, но полагаю в дальнейшем можно попробовать его развить.

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

:local substring;
:local string "test1_20201230_082435.rsc";
:local signA "_20";
:set substring [:pick $string ([:find $string $signA] + 1) ($string [:find $string $signA] + 9)];
:log warning $substring;


Ответить