Страница 4 из 5

Re: add src/dst to adress list

Добавлено: 28 авг 2014, 08:12
-user-
podarok66 писал(а):попробуйте посидеть и почитать http://wiki.mikrotik.com/wiki/Manual:Scripting . Там не столь много информации, понять можно.

ок, пошел читать :-):

podarok66 писал(а):А то Ваши выкладки очень сложно просто разобрать, так Вы там изворачиваетесь.

да вроде норм, в "Notrpad++" мышкой ткну в скобку ]}) , а её ответная скобка подсвечивается красным :-):

podarok66 писал(а):Вполне возможно, что придется $VarIP изменять с помощью set...

поищу про этот SET, видел уже его, только пока не вкурил когда его применять, наверное при переопределении данных в переменной чтоли... пошел читать мануалы ((

upd: вон даже в мануале в первых строчках пишут что так и нужно :hi_hi_hi: - [param=[value]] .. [param=[value]]

Re: add src/dst to adress list

Добавлено: 28 авг 2014, 08:52
podarok66
-user- писал(а):upd: вон даже в мануале в первых строчках пишут что так и нужно :hi_hi_hi: - [param=[value]] .. [param=[value]]

Wiki писал(а):Global commands

Every global command should start with ":" token, otherwise it will be treated as variable.

Re: add src/dst to adress list

Добавлено: 28 авг 2014, 09:45
-user-
podarok66 писал(а):Every global command should start with ":" token, otherwise it will be treated as variable.
:-): пока в процессе чтива манов, но вот нашел строчку (как раз речь про начало : и конец ; )
Each command line inside another command line starts and ends with square brackets "[ ]".

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

:put [/ip route get [find gateway=1.1.1.1]];  

Re: add src/dst to adress list

Добавлено: 28 авг 2014, 10:01
podarok66
Ну да, всё верно, если Вы собрались в процесс работы одной команды использовать результаты выполнения другой команды, то вторую команду можно внести в нужное место основной команды, взяв в квадратные скобки. Или использовать переменную, если результат нужен несколько раз...

Re: add src/dst to adress list

Добавлено: 28 авг 2014, 21:51
-user-
вместо изучения "queues" потрачено время на скрипты :cry_ing:
в итоге родился такой скрипт... у меня на v6.19 работает так, как это было в моей изначальной хотелке...
Возможно много косяков, жду критики от спецов, дабы улучшить/ускорить "процесс".

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

{:global FuncRUN do={:foreach i in [/ip fi ad find list=$VarLIST dynamic] do={[local VarIP] [ set VarIP [/ip fi ad get $i address]] [/ip fi ad remove [find address=[get $i address]]] [/ip fi ad add address=$VarIP list=$VarLIST]}}
# MyList - target Address List
$FuncRUN VarLIST=MyList}

Manual:Scripting на вики микротика и правда не плох :smu:sche_nie: :co_ol:
Всем спасибо за помощь. :a_g_a:

С уважением.

Re: add src/dst to adress list

Добавлено: 28 авг 2014, 22:19
vqd
Никогда так не пишите скрипты

[/ip fi ad add address=$VarIP list=$VarLIST]}}

Re: add src/dst to adress list

Добавлено: 28 авг 2014, 22:21
-user-
vqd писал(а):Никогда так не пишите скрипты
[/ip fi ad add address=$VarIP list=$VarLIST]}}

опишите пожалуйста, что нужно исправить? в чем ошибка... ведь если бы знал что не так, сразу написал бы правильно :-):
на что заменить? :-(

upd: или Вы про сокращение команд? если про это, то в официальном ВИКИ про это есть.

Re: add src/dst to adress list

Добавлено: 28 авг 2014, 22:25
vqd
Ошибка в отношении

Откройте мои скрипты и посмотрите, а теперь представите что я вам написал что то типа

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

/ip fi na ad

Это тоже рабочее но я думаю что на первых парах вы бы подумали что я вас послал

Да и ваши приемники вам спасибо не скажут

Re: add src/dst to adress list

Добавлено: 28 авг 2014, 22:28
vqd
Я вот начал ваш скрипт смотреть. но как то перестал ибо фу . TAB жмите если писать лень

Re: add src/dst to adress list

Добавлено: 28 авг 2014, 22:33
-user-
vqd писал(а):Ошибка в отношении

ок понял :-):
думал раз с официального мануала взято, то так и нужно, ок, исправлюсь, отношусь ко всем хорошо :mi_ga_et:

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

{:global FuncRUN do={:foreach i in [/ip firewall address-list find list=$VarLIST dynamic] do={[local VarIP] [ set VarIP [/ip firewall address-list get $i address]] [/ip firewall address-list remove [find address=[get $i address]]] [/ip firewall address-list add address=$VarIP list=$VarLIST]}}
# MyList - target Address List
$FuncRUN VarLIST=MyList}