Подскажите пожалуйста, где почитать про команды, с которыми можно осуществить парсинг строки...
например:
на выходе этой "команды" /system clock get date получаются данные с знаками "/", а так как задача вставить дату в имя файла, то надо заменить "/", например, на это "."
зачитал до дыр мануал по скриптингу, не пойму, что от туда, мне нужно применить....
upd: нашел только одну "команду" , которой хоть как-то можно вывернуться - :pick <var> <start>[<end>] Что еще можно использовать?
скриптинг (общее, вопросы 'обо' всем)
Правила форума
Как правильно оформить вопрос.
Прежде чем начать настройку роутера, представьте, как это работает. Попробуйте почитать статьи об устройстве интернет-сетей. Убедитесь, что всё, что Вы задумали выполнимо вообще и на данном оборудовании в частности.
Не нужно изначально строить Наполеоновских планов. Попробуйте настроить простейшую конфигурацию, а усложнения добавлять в случае успеха постепенно.
Пожалуйста, не игнорируйте правила русского языка. Отсутствие знаков препинания и неграмотность автора топика для многих гуру достаточный повод проигнорировать топик вообще.
1. Назовите технологию подключения (динамический DHCP, L2TP, PPTP или что-то иное)
2. Изучите темку "Действия до настройки роутера".
viewtopic.php?f=15&t=2083
3. Настройте согласно выбранного Вами мануала
4. Дочитайте мануал до конца и без пропусков, в 70% случаев люди просто не до конца читают статью и пропускают важные моменты.
5. Если не получается, в Winbox открываем терминал и вбиваем там /export hide-sensitive. Результат в топик под кат, интимные подробности типа личных IP изменить на другие, пароль забить звездочками.
6. Нарисуйте Вашу сеть, рисунок (схему) сюда. На словах может быть одно, в действительности другое.
Как правильно оформить вопрос.
Прежде чем начать настройку роутера, представьте, как это работает. Попробуйте почитать статьи об устройстве интернет-сетей. Убедитесь, что всё, что Вы задумали выполнимо вообще и на данном оборудовании в частности.
Не нужно изначально строить Наполеоновских планов. Попробуйте настроить простейшую конфигурацию, а усложнения добавлять в случае успеха постепенно.
Пожалуйста, не игнорируйте правила русского языка. Отсутствие знаков препинания и неграмотность автора топика для многих гуру достаточный повод проигнорировать топик вообще.
1. Назовите технологию подключения (динамический DHCP, L2TP, PPTP или что-то иное)
2. Изучите темку "Действия до настройки роутера".
viewtopic.php?f=15&t=2083
3. Настройте согласно выбранного Вами мануала
4. Дочитайте мануал до конца и без пропусков, в 70% случаев люди просто не до конца читают статью и пропускают важные моменты.
5. Если не получается, в Winbox открываем терминал и вбиваем там /export hide-sensitive. Результат в топик под кат, интимные подробности типа личных IP изменить на другие, пароль забить звездочками.
6. Нарисуйте Вашу сеть, рисунок (схему) сюда. На словах может быть одно, в действительности другое.
-
- Сообщения: 30
- Зарегистрирован: 21 мар 2013, 10:05
- podarok66
- Модератор
- Сообщения: 4368
- Зарегистрирован: 11 фев 2012, 18:49
- Откуда: МО
{:local filename ([:pick [/system clock get date] 4 6] . "." . [:pick [/system clock get date] 0 3] . "." . [:pick [/system clock get date] 7 11]);
:log info $filename; }
Вот так выглядит конструкция с точками, но учтите, это текстовая строка, а не дата. Для названий использовать можно, а вот далее в скриптинге в таком виде никак. Ну да Вам нужно именно для названия
:log info $filename; }
Вот так выглядит конструкция с точками, но учтите, это текстовая строка, а не дата. Для названий использовать можно, а вот далее в скриптинге в таком виде никак. Ну да Вам нужно именно для названия
Мануалы изучил и нигде не ошибся? Фаервол отключил? Очереди погасил? Витая пара проверена? ... Тогда Netinstal'ом железку прошей и настрой ее заново. Что, все равно не фурычит? Тогда к нам. Если не подскажем, хоть посочувствуем...
-
- Сообщения: 30
- Зарегистрирован: 21 мар 2013, 10:05
Ага, СПСpodarok66 писал(а):...
А так вообще, всё, что нашел, чем можно работать со строкой, так только это:
Код: Выделить всё
:put [:len "length=8"]
:put [:pick "abcde" 1 3]
:put [:find "abc" "a" -1]
хоть и непривычно мало, но, в принципе, уже колдовать можно с разными степенями извращения
Единственно вопрос мучает: количество символов в имени месяца (в дате), во всех случаях три, или бывает из 2 букв или может из 4-х? А то к МТ доступа пока нету, поколдовать с датами и просмотреть... сижу пока на http://demo2.mt.lv/webfig/# в терминале ... а там дату не поменять, естественно, прав нету
-
- Модератор
- Сообщения: 3600
- Зарегистрирован: 26 сен 2013, 14:20
- Откуда: НСК
- Контактная информация:
Еще могу подсказку дать
Частенько когда писал скрипты то сталкивался с проблемой.
Например в условии надо сравнить ИП адрес
:if (10.0.0.1/24 = 10.0.0.1)
Часто в переменную писался именно адрес с маской и приходилось ее обрезать что бы получить именно ИП для условия.
Но как то раз когда я в очередной раз лазил по документации наткнулся на ~ )))
Теперь условия выглядят так
:if (10.0.0.1/24~ 10.0.0.1) и не надо маску обрезать )))
ПыСы: В микротике есть инструмент для работы с ИП адресами и масками и вышеприведенное просто пример для понимания
Частенько когда писал скрипты то сталкивался с проблемой.
Например в условии надо сравнить ИП адрес
:if (10.0.0.1/24 = 10.0.0.1)
Часто в переменную писался именно адрес с маской и приходилось ее обрезать что бы получить именно ИП для условия.
Но как то раз когда я в очередной раз лазил по документации наткнулся на ~ )))
Теперь условия выглядят так
:if (10.0.0.1/24~ 10.0.0.1) и не надо маску обрезать )))
ПыСы: В микротике есть инструмент для работы с ИП адресами и масками и вышеприведенное просто пример для понимания
Есть интересная задача и бюджет? http://mikrotik.site
-
- Сообщения: 30
- Зарегистрирован: 21 мар 2013, 10:05
vqd писал(а):наткнулся на ~ )))
:if (10.0.0.1/24~ 10.0.0.1) и не надо маску обрезать )))
СПС, учту
-
- Сообщения: 30
- Зарегистрирован: 21 мар 2013, 10:05
хммм...
немного странно выглядит осуществление:
например:
учитывая, что символа в "строке" с позицией номер 5 - нету (отсчет начинается с 0 и последний символ в "строке" имеет место 4).., но для того чтобы вывести по последний знак в строке, нужно указать именно до символа с местом 5 которого просто не существует... Получается для позиции <start> используется одна логика для её определения, а для позиции <end> - другая
немного странно выглядит осуществление:
:pick <var> <start>[<end>]
например:
Код: Выделить всё
put [:pick "01234" 1 4]
123
:put [:pick "01234" 0 4]
0123
:put [:pick "01234" 0 5]
01234
учитывая, что символа в "строке" с позицией номер 5 - нету (отсчет начинается с 0 и последний символ в "строке" имеет место 4).., но для того чтобы вывести по последний знак в строке, нужно указать именно до символа с местом 5 которого просто не существует... Получается для позиции <start> используется одна логика для её определения, а для позиции <end> - другая
-
- Сообщения: 30
- Зарегистрирован: 21 мар 2013, 10:05
что получилось:
или одной строкой:
Всем спасибо за подсказки и наставления
Код: Выделить всё
{
:local BDOvarData
:local BDOvarTime
:local BDOvarNumDivider1
:local BDOvarNumDivider2
:local BDOvarNameFile
:local BDOvarInterimNameFile1
:local BDOvarInterimNameFile2
:local BDOvarLen
:set BDOvarData [/system clock get date]
:set BDOvarTime [/system clock get time]
:set BDOvarNumDivider1 [:find $BDOvarData "/" -1]
:set BDOvarNumDivider2 [:find $BDOvarData "/" $BDOvarNumDivider1]
:set BDOvarLen [len $BDOvarData]
:set BDOvarInterimNameFile1 ([:pick $BDOvarData 0 $BDOvarNumDivider1].".".[:pick $BDOvarData ($BDOvarNumDivider1+1) ($BDOvarNumDivider2)].".".[:pick $BDOvarData ($BDOvarNumDivider2+1) $BDOvarLen])
:set BDOvarInterimNameFile2 ([:pick $BDOvarTime 0 2].".".[:pick $BDOvarTime 3 5].".".[:pick $BDOvarTime 6 8])
:set BDOvarNameFile ($BDOvarInterimNameFile1."_".$BDOvarInterimNameFile2)
:put $BDOvarNameFile
}
sep.01.2014_13.24.40
или одной строкой:
Код: Выделить всё
[:local BDOvarData] [:local BDOvarTime] [:local BDOvarNumDivider1] [:local BDOvarNumDivider2] [:local BDOvarNameFile] [:local BDOvarInterimNameFile1] [:local BDOvarInterimNameFile2] [:local BDOvarLen] [:set BDOvarData [/system clock get date]] [:set BDOvarTime [/system clock get time]] [:set BDOvarNumDivider1 [:find $BDOvarData "/" -1]] [:set BDOvarNumDivider2 [:find $BDOvarData "/" $BDOvarNumDivider1]] [:set BDOvarLen [len $BDOvarData]] [:set BDOvarInterimNameFile1 ([:pick $BDOvarData 0 $BDOvarNumDivider1].".".[:pick $BDOvarData ($BDOvarNumDivider1+1) ($BDOvarNumDivider2)].".".[:pick $BDOvarData ($BDOvarNumDivider2+1) $BDOvarLen])] [:set BDOvarInterimNameFile2 ([:pick $BDOvarTime 0 2].".".[:pick $BDOvarTime 3 5].".".[:pick $BDOvarTime 6 8])] [:set BDOvarNameFile ($BDOvarInterimNameFile1."_".$BDOvarInterimNameFile2)] [put $BDOvarNameFile]
Всем спасибо за подсказки и наставления
- podarok66
- Модератор
- Сообщения: 4368
- Зарегистрирован: 11 фев 2012, 18:49
- Откуда: МО
Ну что же, поздравляю. Первый полноценный продукт
Вы бы еще ; использовали на всякий случай. Это поможет, поверьте. Особенно когда станете разбирать код, который писали год назад...
Вы бы еще ; использовали на всякий случай. Это поможет, поверьте. Особенно когда станете разбирать код, который писали год назад...
Мануалы изучил и нигде не ошибся? Фаервол отключил? Очереди погасил? Витая пара проверена? ... Тогда Netinstal'ом железку прошей и настрой ее заново. Что, все равно не фурычит? Тогда к нам. Если не подскажем, хоть посочувствуем...
- Dragon_Knight
- Сообщения: 1721
- Зарегистрирован: 26 мар 2012, 18:21
- Откуда: МО, Мытищи
- Контактная информация:
-user- писал(а):хммм...
немного странно выглядит осуществление::pick <var> <start>[<end>]
например:Код: Выделить всё
put [:pick "01234" 1 4]
123
:put [:pick "01234" 0 4]
0123
:put [:pick "01234" 0 5]
01234
учитывая, что символа в "строке" с позицией номер 5 - нету (отсчет начинается с 0 и последний символ в "строке" имеет место 4).., но для того чтобы вывести по последний знак в строке, нужно указать именно до символа с местом 5 которого просто не существует... Получается для позиции <start> используется одна логика для её определения, а для позиции <end> - другая
Во всех языках программирования первое значение это номер символа, начиная от нуля, второе это кол-во символов, а отсчёт, согласно учебникам первого класса , начинается с единицы, так что всё правильно работает)
:put [:pick "01234" 0 5] - Выбрать пять знаков, начиная с элемента массива с индексом '0'.
Небольшой свод правил логики и ссылок:
- Если устройство имеет Ethernet порт, то оно обязано быть подключено через него. Компьютер, Ноутбук, Телевизор, Принтер, Камера видеонаблюдения, и т.д.
- Если нет возможности протянуть кабель, то найдите её, или страдайте со своими проблемами Wi-Fi дальше.
- Wi-Fi это сеть для мобильных устройств. Если Вы подключили свой шикарный 50" телевизор не кабелем, то без фотоотчёта, когда он лежит у Вас в кармане дальнейшего разговора не получиться. Это относится и ко всем остальным устройствам.
- Если Ваше устройство вызывает вопросы в работе, первое что необходимо делать: NetInstall + дальнейшая настройка вручную.
- Не используйте WebFig или QuickSet - это пути к глюкам и ошибкам. Только SSH или WinBox, и да, - WinBox есть под Android.
- name.rsc - это текстовый файл, и Вы можете его открыть блокнотом.
- Если Вы хотите связаться со мной для ремонта или настройки, то: Telegram ( Не благотворительность ).
- Мой сайт по Mikrotik: Global Zone >> MikroTik.
-
- Сообщения: 30
- Зарегистрирован: 21 мар 2013, 10:05
Dragon_Knight писал(а)::put [:pick "01234" 0 5] - Выбрать пять знаков, начиная с элемента массива с индексом '0'.
Тоже была такая мысль, но это было бы верно, если бы это:
Код: Выделить всё
put [:pick "01234" 1 4]
123
благодАр Просто пока тренируюсь в настройке, приходиться часто делать бэкапы МТ, после каждой удачной настройки, и задолбался вручную набивать имена к бэкапам... хочу сделать, чтобы один тык в скрипт сохранял на флэшку сразу и бэкап и экспорт и экспорт по подразделам отдельно.... ....podarok66 писал(а):Ну что же, поздравляю. Первый полноценный продукт
Вы бы еще ; использовали на всякий случай. Это поможет, поверьте. Особенно когда станете разбирать код, который писали год назад...
Если честно, пока не понимаю, даже для чего ставятся : и ; , в мануале, написано, тоже, "нужно ставить", но с тем же двоеточием и без него работает как и в начале строки, так и в квадратных скобках.... по этому пока вообще не пойму, на что они влияют, буду стараться исправляться
хотелось бы увидеть пример, в котором без точек или точкиЗапятой, не сработает скрипт... (видать просто сложных еще не видел скриптов, где это может и правда имеет значение )