Всем добрый день!
Подскажите, как в скрипте узнать какой сегодня день недели?
и вообще где можно посмотреть какие системные функции можно использовать?
Узнать дату
- podarok66
- Модератор
- Сообщения: 4402
- Зарегистрирован: 11 фев 2012, 18:49
- Откуда: МО
http://wiki.mikrotik.com/wiki/Script_to ... f_the_week
Или поновее
http://wiki.mikrotik.com/wiki/Manual:Scripting
Или поновее
Код: Выделить всё
#
# $RCSfile: function-date.rsc,v $
# $Revision: 1.1 $
# $Date: 2011/05/27 19:47:46 $
# $Author: reesejb $, iNet Specialists. Copyright, (C)2007-2011, All Rights Reserved
#
# Calculates day of the week (number of month, etc.) for a givien date
#
# Expanded from "day of week" script at:
# http://wiki.mikrotik.com/wiki/Script_to_find_the_day_of_the_week
#
# Month: jan,feb,..nov,dec (must be lower-case)
# Day: 01-31
# Year: 1900-2999
# mmm/dd/yyyy same format as [/system clock get date]
# (ex. jul/22/2009)
:local date [/ system clock get date]
# Variables
:global weekday ""
:global monthord ""
:local months [:toarray "jan,feb,mar,apr,may,jun,jul,aug,sep,oct,nov,dec"]
:local monthval [:toarray "01,02,03,04,05,06,07,08,09,10,11,12"]
:local monthtbl [:toarray "0,3,3,6,1,4,6,2,5,0,3,5"]
:local daytbl [:toarray "sun,mon,tue,wed,thu,fri,sat"]
:global monthshort [:pick $date 0 3]
:global day [:pick $date 4 6]
:local daysum $day
:local dayc [:pick $date 5 6]
:global century [:pick $date 7 9]
:global year [:pick $date 9 11]
:local yearsum $year
:local yearc [:pick $date 10 11]
# if the first digit of the day or year is a 0 (zero),
# only use the last digit, otherwise the script will fail
:if ([:pick $date 4 5] = 0) do={ :set daysum ($dayc)}
:if ([:pick $date 9 10] = 0) do=[:set yearsum ($yearc)]
# Calculate "sum" to determine which "day of week" (from daytbl) to use
:local sum 0
:set sum ($sum + (2 * (3 - ($century - (($century / 4) * 4)))))
:set sum ($sum + ($yearsum / 4))
:set sum ($sum + $yearsum + $daysum)
:for mindex from=0 to=[:len $months] do={ \
:if ([:pick $months $mindex] = $monthshort) do={ \
:set sum ($sum + [:pick $monthtbl $mindex])
:set monthord [:pick $monthval $mindex]
} \
}
:set sum ($sum - (($sum / 7) * 7))
:set weekday [:pick $daytbl $sum]
# Log the result for troubleshooting purposes
:log info "Today is $weekday, $monthshort $day, $century$year ($monthord/$day/$century$year)"
http://wiki.mikrotik.com/wiki/Manual:Scripting
Мануалы изучил и нигде не ошибся? Фаервол отключил? Очереди погасил? Витая пара проверена? ... Тогда Netinstal'ом железку прошей и настрой ее заново. Что, все равно не фурычит? Тогда к нам. Если не подскажем, хоть посочувствуем...
-
- Сообщения: 7
- Зарегистрирован: 26 июл 2020, 20:29
Здравствуйте, подскажите, что-то изменилось в новых прошивках??
До этого стояли версии 7.7 - 7.8 на роутерах этот скрипт срабатывал нормально. Сейчас некорректно определяет день недели и выдает: "Today is sun, 202 -0, -29 (/-0/-29)".
Версия 7.10 и выше
До этого стояли версии 7.7 - 7.8 на роутерах этот скрипт срабатывал нормально. Сейчас некорректно определяет день недели и выдает: "Today is sun, 202 -0, -29 (/-0/-29)".
Версия 7.10 и выше
- podarok66
- Модератор
- Сообщения: 4402
- Зарегистрирован: 11 фев 2012, 18:49
- Откуда: МО
Там формат даты поменяли. Что там и как не могу сказать, я последнюю версию не юзаю. Как-то старых возможностей хватает, мне обновлять оборудование пока не очень хочется.
Мануалы изучил и нигде не ошибся? Фаервол отключил? Очереди погасил? Витая пара проверена? ... Тогда Netinstal'ом железку прошей и настрой ее заново. Что, все равно не фурычит? Тогда к нам. Если не подскажем, хоть посочувствуем...
-
- Сообщения: 7
- Зарегистрирован: 26 июл 2020, 20:29
Да, действительно, изменили вывод формата даты с версии 7.10 RouterOS
*) console - changed time format according to ISO standard;
Было:
mmm/dd/yyyy
Стало:
yyyy-mm-dd.
*) console - changed time format according to ISO standard;
Было:
mmm/dd/yyyy
Стало:
yyyy-mm-dd.
- podarok66
- Модератор
- Сообщения: 4402
- Зарегистрирован: 11 фев 2012, 18:49
- Откуда: МО
Да, старый вывод выглядит так
jul/30/2023
Новый так
2023-07-30
Надо скрипт пересобрать, основываясь на этом. Может кто-то и сподобится. Большинство моих знакомых очень неохотно хотят обновлений (ой, странное выражение, но оставлю, мне нравится. Вся суть в нём). Все сидят на 6 версии. Illinory вообще категорично отзывается о таком шаге. Ему там, если что, переписывать не одну неделю. А вот такие неожиданные изменения формата выдачи посреди релиза свободно могут поломать то, что давно и успешно работало. Если вам надо, попробуйте сами переписать
jul/30/2023
Новый так
2023-07-30
Надо скрипт пересобрать, основываясь на этом. Может кто-то и сподобится. Большинство моих знакомых очень неохотно хотят обновлений (ой, странное выражение, но оставлю, мне нравится. Вся суть в нём). Все сидят на 6 версии. Illinory вообще категорично отзывается о таком шаге. Ему там, если что, переписывать не одну неделю. А вот такие неожиданные изменения формата выдачи посреди релиза свободно могут поломать то, что давно и успешно работало. Если вам надо, попробуйте сами переписать
Мануалы изучил и нигде не ошибся? Фаервол отключил? Очереди погасил? Витая пара проверена? ... Тогда Netinstal'ом железку прошей и настрой ее заново. Что, все равно не фурычит? Тогда к нам. Если не подскажем, хоть посочувствуем...
-
- Сообщения: 7
- Зарегистрирован: 26 июл 2020, 20:29
Один умелец на официальном форуме уже попробовал написать скрипт выдергивания даты, времени и пр. из под существующей версии 7.10 +
В терминале работает корректно, но почему-то через скрипт или через планировщик не срабатывает.
То ли лыжи не едут, то ли....
В терминале работает корректно, но почему-то через скрипт или через планировщик не срабатывает.
То ли лыжи не едут, то ли....
-
- Сообщения: 1657
- Зарегистрирован: 15 сен 2017, 09:03
Лыжи едут. Замените в скриптах :put на :log info и получите вывод в скриптах и Планировщике.
этот вероятно Rextended (по стилю видно), не стоит его так называть, он очень сильный программист.Умелец
фрагменты скриптов, готовые работы, статьи, полезные приемы, ссылки
viewtopic.php?f=14&t=13947
viewtopic.php?f=14&t=13947
-
- Сообщения: 7
- Зарегистрирован: 26 июл 2020, 20:29
Делал например: :log info "Today is $Www" в конце скрипта. Может где ошибся вчера, перепроверю.
Да, вы абсолютно правы, его код. Умелец - без никакого злого умысла тут. Не сомневаюсь в его знаниях, он единственный, кто перелопатил и предоставил адаптированный вариант скрипта на данный момент.