<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
	<channel>
		<title>Mikrotik.moscow [тема: Команды if else в программировании сценариев.]</title>
		<link>http://mikrotik.moscow</link>
		<description>Новое в теме Команды if else в программировании сценариев. форума RouterOS на сайте Mikrotik.moscow [mikrotik.moscow]</description>
		<language>ru</language>
		<docs>http://backend.userland.com/rss2</docs>
		<pubDate>Wed, 05 Aug 2026 01:52:55 -0400</pubDate>
		<item>
			<title>Команды if else в программировании сценариев.</title>
			<description><![CDATA[<b><a href="http://mikrotik.moscow/forum/forum57/86764-komandy-if-else-v-programmirovanii-stsenariev./message410123">Команды if else в программировании сценариев.</a></b> <i>RouterOS</i> в форуме <a href="http://mikrotik.moscow/forum/forum57/">RouterOS</a>. <br />
			Дорогой msatter, БИНГО!!! Отличное решение и ответ. Огромное спасибо за твою идею. Она очень мне помогла. Но суть в том, что это устанавливает src-address-list=AllowedSrc и dst-address-list=AllowedDst для всех существующих NAT. У меня несколько NAT, и только один из них должен быть изменён. Я ищу что-то, что сравнивает и проверяет параметры, а в конце меняет их по моему усмотрению. С наилучшими пожеланиями, <br />
			<i>10.08.2020 11:28:00, soheiliz.</i>]]></description>
			<link>http://mikrotik.moscow/forum/forum57/86764-komandy-if-else-v-programmirovanii-stsenariev./message410123</link>
			<guid>http://mikrotik.moscow/forum/forum57/86764-komandy-if-else-v-programmirovanii-stsenariev./message410123</guid>
			<pubDate>Mon, 10 Aug 2020 11:28:00 -0400</pubDate>
			<category>RouterOS</category>
		</item>
		<item>
			<title>Команды if else в программировании сценариев.</title>
			<description><![CDATA[<b><a href="http://mikrotik.moscow/forum/forum57/86764-komandy-if-else-v-programmirovanii-stsenariev./message410122">Команды if else в программировании сценариев.</a></b> <i>RouterOS</i> в форуме <a href="http://mikrotik.moscow/forum/forum57/">RouterOS</a>. <br />
			{<br />/ip firewall nat<br />set [find action=masquerade chain=srcnat] src-address-list="AllowedSrc" dst-address-list="AllowedDst"<br />} Мой вариант — пусть RouterOS сделает всю работу. Если dst/src адрес уже есть, то они будут перезаписаны новыми значениями. Если же вы хотите применить это только к тем строкам, где src-address-list не активен: <br />{<br />/ip firewall nat<br />set [find action=masquerade chain=srcnat src-address-list=""] src-address-list="AllowedSrc" dst-address-list="AllowedDst"<br />} <br />
			<i>10.08.2020 11:07:00, msatter.</i>]]></description>
			<link>http://mikrotik.moscow/forum/forum57/86764-komandy-if-else-v-programmirovanii-stsenariev./message410122</link>
			<guid>http://mikrotik.moscow/forum/forum57/86764-komandy-if-else-v-programmirovanii-stsenariev./message410122</guid>
			<pubDate>Mon, 10 Aug 2020 11:07:00 -0400</pubDate>
			<category>RouterOS</category>
		</item>
		<item>
			<title>Команды if else в программировании сценариев.</title>
			<description><![CDATA[<b><a href="http://mikrotik.moscow/forum/forum57/86764-komandy-if-else-v-programmirovanii-stsenariev./message410121">Команды if else в программировании сценариев.</a></b> <i>RouterOS</i> в форуме <a href="http://mikrotik.moscow/forum/forum57/">RouterOS</a>. <br />
			Дорогой CZFan, большое спасибо за ответ. К сожалению, это не решило проблему. Если я использую приведённый ниже скрипт, мне нужно указать номер, но я не могу, потому что у меня много роутеров Mikrotik с несколькими правилами NAT, и мне нужно добавить src и dst в списки адресов одним скриптом:<br /><br />if [/ip firewall nat find action=masquerade chain=srcnat] do={/ip firewall nat set src-address-list="AllowedSrc" dst-address-list="AllowedDst"}<br /><br />С наилучшими пожеланиями, <br />
			<i>10.08.2020 10:15:00, soheiliz.</i>]]></description>
			<link>http://mikrotik.moscow/forum/forum57/86764-komandy-if-else-v-programmirovanii-stsenariev./message410121</link>
			<guid>http://mikrotik.moscow/forum/forum57/86764-komandy-if-else-v-programmirovanii-stsenariev./message410121</guid>
			<pubDate>Mon, 10 Aug 2020 10:15:00 -0400</pubDate>
			<category>RouterOS</category>
		</item>
		<item>
			<title>Команды if else в программировании сценариев.</title>
			<description><![CDATA[<b><a href="http://mikrotik.moscow/forum/forum57/86764-komandy-if-else-v-programmirovanii-stsenariev./message410120">Команды if else в программировании сценариев.</a></b> <i>RouterOS</i> в форуме <a href="http://mikrotik.moscow/forum/forum57/">RouterOS</a>. <br />
			Я не несу никакой ответственности, так что обязательно сделайте резервную копию конфигурации перед этим!! Я не тестировал, но попробуйте выполнить в терминале после выполнения вышеуказанного:<br /><br />{<br />:foreach i in=[ip firewall nat find where action="masquerade" && chain="srcnat" && src-address-list="no" && dst-address-list="no"]<br />do={/ip firewall nat set src-address-list=AllowedSrc dst-address-list=AllowedDst}<br />} <br />
			<i>10.08.2020 08:19:00, CZFan.</i>]]></description>
			<link>http://mikrotik.moscow/forum/forum57/86764-komandy-if-else-v-programmirovanii-stsenariev./message410120</link>
			<guid>http://mikrotik.moscow/forum/forum57/86764-komandy-if-else-v-programmirovanii-stsenariev./message410120</guid>
			<pubDate>Mon, 10 Aug 2020 08:19:00 -0400</pubDate>
			<category>RouterOS</category>
		</item>
		<item>
			<title>Команды if else в программировании сценариев.</title>
			<description><![CDATA[<b><a href="http://mikrotik.moscow/forum/forum57/86764-komandy-if-else-v-programmirovanii-stsenariev./message410119">Команды if else в программировании сценариев.</a></b> <i>RouterOS</i> в форуме <a href="http://mikrotik.moscow/forum/forum57/">RouterOS</a>. <br />
			Друзья, я пытаюсь использовать этот скрипт, чтобы проверить два параметра, но он просто выполняется без какого-либо действия. &nbsp;<br />:foreach i in=[ip firewall nat find action=masquerade chain=srcnat src-address-list=no dst-address-list=no] do={/ip firewall nat set src-address-list=AllowedSrc dst-address-list=AllowedDst}  <br /><br />Я хочу проверить в моём NAT, если существуют «src-address-list» и «dst-address-list» — тогда ничего не делать. А если их нет и они не указаны, то добавить «src-address-list=AllowedSrc» и «dst-address-list=AllowedDst». &nbsp;<br /><br />Буду очень благодарен, если кто-то поможет с этой проблемой. <br />
			<i>10.08.2020 07:19:00, soheiliz.</i>]]></description>
			<link>http://mikrotik.moscow/forum/forum57/86764-komandy-if-else-v-programmirovanii-stsenariev./message410119</link>
			<guid>http://mikrotik.moscow/forum/forum57/86764-komandy-if-else-v-programmirovanii-stsenariev./message410119</guid>
			<pubDate>Mon, 10 Aug 2020 07:19:00 -0400</pubDate>
			<category>RouterOS</category>
		</item>
		<item>
			<title>Команды if else в программировании сценариев.</title>
			<description><![CDATA[<b><a href="http://mikrotik.moscow/forum/forum57/86764-komandy-if-else-v-programmirovanii-stsenariev./message410118">Команды if else в программировании сценариев.</a></b> <i>RouterOS</i> в форуме <a href="http://mikrotik.moscow/forum/forum57/">RouterOS</a>. <br />
			Окей, проблема решена. Я просто вручную добавил скрипт, затем экспортировал конфиг в файл. Теперь всё работает на 100%. <br />
			<i>10.08.2016 11:39:00, p3rad0x.</i>]]></description>
			<link>http://mikrotik.moscow/forum/forum57/86764-komandy-if-else-v-programmirovanii-stsenariev./message410118</link>
			<guid>http://mikrotik.moscow/forum/forum57/86764-komandy-if-else-v-programmirovanii-stsenariev./message410118</guid>
			<pubDate>Wed, 10 Aug 2016 11:39:00 -0400</pubDate>
			<category>RouterOS</category>
		</item>
		<item>
			<title>Команды if else в программировании сценариев.</title>
			<description><![CDATA[<b><a href="http://mikrotik.moscow/forum/forum57/86764-komandy-if-else-v-programmirovanii-stsenariev./message410117">Команды if else в программировании сценариев.</a></b> <i>RouterOS</i> в форуме <a href="http://mikrotik.moscow/forum/forum57/">RouterOS</a>. <br />
			Спасибо, столкнулся с другой проблемой. Когда пытаюсь добавить скрипт через терминал командой /system script add name=test source=":foreach i in=[interface wireless find default-forwarding=yes] do={/interface wireless set $i default-forwarding=no}", скрипт добавляется, но $i не вставляется, в итоге последняя часть выглядит так: do={/interface wireless set default-forwarding=no}. Почему $i теряется? Причина использования foreach в том, что в некоторых секторах несколько виртуальных точек доступа. <br />
			<i>10.08.2016 08:33:00, p3rad0x.</i>]]></description>
			<link>http://mikrotik.moscow/forum/forum57/86764-komandy-if-else-v-programmirovanii-stsenariev./message410117</link>
			<guid>http://mikrotik.moscow/forum/forum57/86764-komandy-if-else-v-programmirovanii-stsenariev./message410117</guid>
			<pubDate>Wed, 10 Aug 2016 08:33:00 -0400</pubDate>
			<category>RouterOS</category>
		</item>
		<item>
			<title>Команды if else в программировании сценариев.</title>
			<description><![CDATA[<b><a href="http://mikrotik.moscow/forum/forum57/86764-komandy-if-else-v-programmirovanii-stsenariev./message410116">Команды if else в программировании сценариев.</a></b> <i>RouterOS</i> в форуме <a href="http://mikrotik.moscow/forum/forum57/">RouterOS</a>. <br />
			Это должно сделать то же самое: /interface wireless set [find] default-forwarding=no default-authentication=no hide-ssid=yes <br />
			<i>04.08.2016 13:16:00, Chupaka.</i>]]></description>
			<link>http://mikrotik.moscow/forum/forum57/86764-komandy-if-else-v-programmirovanii-stsenariev./message410116</link>
			<guid>http://mikrotik.moscow/forum/forum57/86764-komandy-if-else-v-programmirovanii-stsenariev./message410116</guid>
			<pubDate>Thu, 04 Aug 2016 13:16:00 -0400</pubDate>
			<category>RouterOS</category>
		</item>
		<item>
			<title>Команды if else в программировании сценариев.</title>
			<description><![CDATA[<b><a href="http://mikrotik.moscow/forum/forum57/86764-komandy-if-else-v-programmirovanii-stsenariev./message410115">Команды if else в программировании сценариев.</a></b> <i>RouterOS</i> в форуме <a href="http://mikrotik.moscow/forum/forum57/">RouterOS</a>. <br />
			Хорошо, я решил эту задачу без использования оператора if. &nbsp;<br />:foreach i in=[interface wireless find default-forwarding=yes] do={/interface wireless set $i default-forwarding=no}  <br />:foreach i in=[interface wireless find default-authentication=yes] do={/interface wireless set $i default-authentication=no}  <br />:foreach i in=[interface wireless find hide-ssid=no] do={/interface wireless set $i hide-ssid=yes} <br />
			<i>04.08.2016 13:02:00, p3rad0x.</i>]]></description>
			<link>http://mikrotik.moscow/forum/forum57/86764-komandy-if-else-v-programmirovanii-stsenariev./message410115</link>
			<guid>http://mikrotik.moscow/forum/forum57/86764-komandy-if-else-v-programmirovanii-stsenariev./message410115</guid>
			<pubDate>Thu, 04 Aug 2016 13:02:00 -0400</pubDate>
			<category>RouterOS</category>
		</item>
		<item>
			<title>Команды if else в программировании сценариев.</title>
			<description><![CDATA[<b><a href="http://mikrotik.moscow/forum/forum57/86764-komandy-if-else-v-programmirovanii-stsenariev./message410114">Команды if else в программировании сценариев.</a></b> <i>RouterOS</i> в форуме <a href="http://mikrotik.moscow/forum/forum57/">RouterOS</a>. <br />
			Привет, кто-нибудь может помочь сделать то же самое, но с default authenticate и forward? Если они включены — отключить, если нет — ничего не делать. <br />
			<i>04.08.2016 10:35:00, p3rad0x.</i>]]></description>
			<link>http://mikrotik.moscow/forum/forum57/86764-komandy-if-else-v-programmirovanii-stsenariev./message410114</link>
			<guid>http://mikrotik.moscow/forum/forum57/86764-komandy-if-else-v-programmirovanii-stsenariev./message410114</guid>
			<pubDate>Thu, 04 Aug 2016 10:35:00 -0400</pubDate>
			<category>RouterOS</category>
		</item>
		<item>
			<title>Команды if else в программировании сценариев.</title>
			<description><![CDATA[<b><a href="http://mikrotik.moscow/forum/forum57/86764-komandy-if-else-v-programmirovanii-stsenariev./message410113">Команды if else в программировании сценариев.</a></b> <i>RouterOS</i> в форуме <a href="http://mikrotik.moscow/forum/forum57/">RouterOS</a>. <br />
			Мне нужна помощь с этим кодом: &nbsp;<br />:set datadown [/ip hotspot active get $counter bytes-out]  <br />:if ([/ip hotspot active get $counter bytes-out] = "0") do={  <br />Я просто хочу проверить, ограничен ли этот пользователь уже или нет, и если нет — автоматически его ограничить. Вот и всё. <br />
			<i>02.11.2014 03:58:00, mandobasha.</i>]]></description>
			<link>http://mikrotik.moscow/forum/forum57/86764-komandy-if-else-v-programmirovanii-stsenariev./message410113</link>
			<guid>http://mikrotik.moscow/forum/forum57/86764-komandy-if-else-v-programmirovanii-stsenariev./message410113</guid>
			<pubDate>Sun, 02 Nov 2014 03:58:00 -0500</pubDate>
			<category>RouterOS</category>
		</item>
		<item>
			<title>Команды if else в программировании сценариев.</title>
			<description><![CDATA[<b><a href="http://mikrotik.moscow/forum/forum57/86764-komandy-if-else-v-programmirovanii-stsenariev./message410112">Команды if else в программировании сценариев.</a></b> <i>RouterOS</i> в форуме <a href="http://mikrotik.moscow/forum/forum57/">RouterOS</a>. <br />
			Тогда используй :foreach i in=[find comment="Group B"] вместо :foreach i in=[find] Я же просто привёл пример =) <br />
			<i>05.09.2010 17:27:00, Chupaka.</i>]]></description>
			<link>http://mikrotik.moscow/forum/forum57/86764-komandy-if-else-v-programmirovanii-stsenariev./message410112</link>
			<guid>http://mikrotik.moscow/forum/forum57/86764-komandy-if-else-v-programmirovanii-stsenariev./message410112</guid>
			<pubDate>Sun, 05 Sep 2010 17:27:00 -0400</pubDate>
			<category>RouterOS</category>
		</item>
		<item>
			<title>Команды if else в программировании сценариев.</title>
			<description><![CDATA[<b><a href="http://mikrotik.moscow/forum/forum57/86764-komandy-if-else-v-programmirovanii-stsenariev./message410111">Команды if else в программировании сценариев.</a></b> <i>RouterOS</i> в форуме <a href="http://mikrotik.moscow/forum/forum57/">RouterOS</a>. <br />
			Мои точки доступа настроены с IP-адресами, как показано на изображении ниже… Каждое клиентское устройство находится в своей отдельной сети (и с тем же широковещательным адресом), и на клиенте IP настроен с такой же сетью и широковещательным адресом, как и у точки доступа, то есть по сути у каждого клиента своя собственная сеть. 255 никогда не используется в беспроводной сети как общий широковещательный IP. Клиентское устройство, связанное с первым IP на изображении выше, имеет такие настройки для своих IP… С уважением, Брайан <br />
			<i>05.09.2010 09:04:00, briane.</i>]]></description>
			<link>http://mikrotik.moscow/forum/forum57/86764-komandy-if-else-v-programmirovanii-stsenariev./message410111</link>
			<guid>http://mikrotik.moscow/forum/forum57/86764-komandy-if-else-v-programmirovanii-stsenariev./message410111</guid>
			<pubDate>Sun, 05 Sep 2010 09:04:00 -0400</pubDate>
			<category>RouterOS</category>
		</item>
		<item>
			<title>Команды if else в программировании сценариев.</title>
			<description><![CDATA[<b><a href="http://mikrotik.moscow/forum/forum57/86764-komandy-if-else-v-programmirovanii-stsenariev./message410110">Команды if else в программировании сценариев.</a></b> <i>RouterOS</i> в форуме <a href="http://mikrotik.moscow/forum/forum57/">RouterOS</a>. <br />
			Часто IP-адреса, заканчивающиеся на .255, являются широковещательными адресами и не могут использоваться как шлюзы. Ваш, возможно, подходит, так как мы не знаем маску подсети вашего IP-адреса в этой сети. <br />
			<i>04.09.2010 20:46:00, fewi.</i>]]></description>
			<link>http://mikrotik.moscow/forum/forum57/86764-komandy-if-else-v-programmirovanii-stsenariev./message410110</link>
			<guid>http://mikrotik.moscow/forum/forum57/86764-komandy-if-else-v-programmirovanii-stsenariev./message410110</guid>
			<pubDate>Sat, 04 Sep 2010 20:46:00 -0400</pubDate>
			<category>RouterOS</category>
		</item>
		<item>
			<title>Команды if else в программировании сценариев.</title>
			<description><![CDATA[<b><a href="http://mikrotik.moscow/forum/forum57/86764-komandy-if-else-v-programmirovanii-stsenariev./message410109">Команды if else в программировании сценариев.</a></b> <i>RouterOS</i> в форуме <a href="http://mikrotik.moscow/forum/forum57/">RouterOS</a>. <br />
			Спасибо, Chupaka. Может, я чего-то не понимаю, но это изменит любой gw с 250 на 255, тогда обе группы нагрузки пойдут через gw 255. Теперь их уже нельзя будет раздельно настроить, ведь они идентичны. Оба шлюза активны (балансировка нагрузки), если только один не выйдет из строя — тогда трафик с неработающего gw перенаправляется на оставшийся активный. Вот почему я думал, что проще искать по полю «Comment» или даже «routing mark»... Если изменения делаются только по IP шлюза, и они совпадают, разделить их уже не получится. Может, выбрать как поле выделения «routing mark»? Что я пытаюсь сделать через netwatch на GroupB: когда он поднимается после сбоя, скрипт должен проверить, стоит ли там 255 или 250. Если 255 — ничего не менять, если 250 и netwatch показывает «up», то поменять на 255. Надеюсь, теперь цель понятнее. Поясните, что значит «255?» ? Всё работает уже три месяца, может, это как-то влияет, о чём я не знаю? Спасибо и всего хорошего, Брайан. <br />
			<i>04.09.2010 20:14:00, briane.</i>]]></description>
			<link>http://mikrotik.moscow/forum/forum57/86764-komandy-if-else-v-programmirovanii-stsenariev./message410109</link>
			<guid>http://mikrotik.moscow/forum/forum57/86764-komandy-if-else-v-programmirovanii-stsenariev./message410109</guid>
			<pubDate>Sat, 04 Sep 2010 20:14:00 -0400</pubDate>
			<category>RouterOS</category>
		</item>
		<item>
			<title>Команды if else в программировании сценариев.</title>
			<description><![CDATA[<b><a href="http://mikrotik.moscow/forum/forum57/86764-komandy-if-else-v-programmirovanii-stsenariev./message410108">Команды if else в программировании сценариев.</a></b> <i>RouterOS</i> в форуме <a href="http://mikrotik.moscow/forum/forum57/">RouterOS</a>. <br />
			:local gw;<br />/ip route<br />:foreach i in=[find] do={<br /> &nbsp;:set gw [get $i gateway];<br /> &nbsp;if ($gw = "10.254.254.250") do={<br /> &nbsp; &nbsp;set $i gateway=10.254.254.255;<br /> &nbsp;}<br />} п.с. .255?.. <br />
			<i>04.09.2010 17:26:00, Chupaka.</i>]]></description>
			<link>http://mikrotik.moscow/forum/forum57/86764-komandy-if-else-v-programmirovanii-stsenariev./message410108</link>
			<guid>http://mikrotik.moscow/forum/forum57/86764-komandy-if-else-v-programmirovanii-stsenariev./message410108</guid>
			<pubDate>Sat, 04 Sep 2010 17:26:00 -0400</pubDate>
			<category>RouterOS</category>
		</item>
		<item>
			<title>Команды if else в программировании сценариев.</title>
			<description><![CDATA[<b><a href="http://mikrotik.moscow/forum/forum57/86764-komandy-if-else-v-programmirovanii-stsenariev./message410107">Команды if else в программировании сценариев.</a></b> <i>RouterOS</i> в форуме <a href="http://mikrotik.moscow/forum/forum57/">RouterOS</a>. <br />
			Привет! Хочу развить эту идею дальше… У меня есть команда Netwatch, которая выглядит так: /ip route set [find comment="Group B"] gateway=10.254.254.255; Мне хотелось бы, чтобы эта команда сначала проверяла, стоит ли у /ip route [find comment="Group B"] gateway=10.254.254.250, и если да — тогда выполнялась команда /ip route set [find comment="Group B"] gateway=10.254.254.255;, а если нет — ничего не делать. Это часть скрипта для балансировки нагрузки и аварийного переключения, два шлюза по умолчанию настроены на 10.254.254.250 (GroupA) и 10.254.254.255 (GroupB). И только если один из шлюзов падает, обе группы переключаются на оставшийся «открытый» шлюз. Спасибо, Brian (также briane на этом форуме). <br />
			<i>04.09.2010 09:09:00, EarthStation.</i>]]></description>
			<link>http://mikrotik.moscow/forum/forum57/86764-komandy-if-else-v-programmirovanii-stsenariev./message410107</link>
			<guid>http://mikrotik.moscow/forum/forum57/86764-komandy-if-else-v-programmirovanii-stsenariev./message410107</guid>
			<pubDate>Sat, 04 Sep 2010 09:09:00 -0400</pubDate>
			<category>RouterOS</category>
		</item>
		<item>
			<title>Команды if else в программировании сценариев.</title>
			<description><![CDATA[<b><a href="http://mikrotik.moscow/forum/forum57/86764-komandy-if-else-v-programmirovanii-stsenariev./message410106">Команды if else в программировании сценариев.</a></b> <i>RouterOS</i> в форуме <a href="http://mikrotik.moscow/forum/forum57/">RouterOS</a>. <br />
			Привет, я новичок в скриптинге и у меня, как мне кажется, небольшая проблема. Псевдокод: если wlan1 включён, ничего не делать и выйти из скрипта, иначе включить wlan1 и выйти из скрипта. В общем, я не хочу просто каждый раз включать wlan1 при запуске скрипта, потому что если он уже включён, а скрипт снова его включает, связь пропадает примерно на 2 секунды из-за разрыва и повторного соединения. Спасибо, Брайан. <br />
			<i>30.07.2010 14:32:00, briane.</i>]]></description>
			<link>http://mikrotik.moscow/forum/forum57/86764-komandy-if-else-v-programmirovanii-stsenariev./message410106</link>
			<guid>http://mikrotik.moscow/forum/forum57/86764-komandy-if-else-v-programmirovanii-stsenariev./message410106</guid>
			<pubDate>Fri, 30 Jul 2010 14:32:00 -0400</pubDate>
			<category>RouterOS</category>
		</item>
	</channel>
</rss>
