<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
	<channel>
		<title>Mikrotik.moscow [тема: объединить значения для создания имени переменной]</title>
		<link>http://mikrotik.moscow</link>
		<description>Новое в теме объединить значения для создания имени переменной форума RouterOS на сайте Mikrotik.moscow [mikrotik.moscow]</description>
		<language>ru</language>
		<docs>http://backend.userland.com/rss2</docs>
		<pubDate>Sun, 02 Aug 2026 11:28:56 -0400</pubDate>
		<item>
			<title>объединить значения для создания имени переменной</title>
			<description><![CDATA[<b><a href="http://mikrotik.moscow/forum/forum57/86445-obedinit-znacheniya-dlya-sozdaniya-imeni-peremennoy/message406882">объединить значения для создания имени переменной</a></b> <i>RouterOS</i> в форуме <a href="http://mikrotik.moscow/forum/forum57/">RouterOS</a>. <br />
			Это одна функция, а не одна переменная, внутри которой находится одна строка, представляющая один скрипт для последующего сравнения с помощью парсинга или выполнения. «(eval /log infomessage=mama)» — это НЕ один скрипт, а [бесполезный] скомпилированный заранее код. <br />
			<i>09.03.2023 08:46:00, rextended.</i>]]></description>
			<link>http://mikrotik.moscow/forum/forum57/86445-obedinit-znacheniya-dlya-sozdaniya-imeni-peremennoy/message406882</link>
			<guid>http://mikrotik.moscow/forum/forum57/86445-obedinit-znacheniya-dlya-sozdaniya-imeni-peremennoy/message406882</guid>
			<pubDate>Thu, 09 Mar 2023 08:46:00 -0500</pubDate>
			<category>RouterOS</category>
		</item>
		<item>
			<title>объединить значения для создания имени переменной</title>
			<description><![CDATA[<b><a href="http://mikrotik.moscow/forum/forum57/86445-obedinit-znacheniya-dlya-sozdaniya-imeni-peremennoy/message406881">объединить значения для создания имени переменной</a></b> <i>RouterOS</i> в форуме <a href="http://mikrotik.moscow/forum/forum57/">RouterOS</a>. <br />
			Тебе нужен интерактивный терминал с этим скриптом? Запускай скрипт асинхронно в отдельном потоке. Команду выполняй без ожидания, и скрипт сразу перейдет к следующей строке, выполнение идет отдельно. Вывода в терминал не будет. <br />
			<i>08.03.2023 21:19:00, rextended.</i>]]></description>
			<link>http://mikrotik.moscow/forum/forum57/86445-obedinit-znacheniya-dlya-sozdaniya-imeni-peremennoy/message406881</link>
			<guid>http://mikrotik.moscow/forum/forum57/86445-obedinit-znacheniya-dlya-sozdaniya-imeni-peremennoy/message406881</guid>
			<pubDate>Wed, 08 Mar 2023 21:19:00 -0500</pubDate>
			<category>RouterOS</category>
		</item>
		<item>
			<title>объединить значения для создания имени переменной</title>
			<description><![CDATA[<b><a href="http://mikrotik.moscow/forum/forum57/86445-obedinit-znacheniya-dlya-sozdaniya-imeni-peremennoy/message406880">объединить значения для создания имени переменной</a></b> <i>RouterOS</i> в форуме <a href="http://mikrotik.moscow/forum/forum57/">RouterOS</a>. <br />
			Оказалось, что не работает, так как я пробовал с :put. Работает с log info: {<br />:global test ":log info мама"<br />:local variablename "test"<br />[:execute [/system script environment get [find where name=$variablename] value]]<br />}, но не работает с put: {<br />:global test ":put мама"<br />:local variablename "test"<br />[:execute [/system script environment get [find where name=$variablename] value]]<br />}. Не понимаю почему? <br />
			<i>08.03.2023 19:32:00, Sertik.</i>]]></description>
			<link>http://mikrotik.moscow/forum/forum57/86445-obedinit-znacheniya-dlya-sozdaniya-imeni-peremennoy/message406880</link>
			<guid>http://mikrotik.moscow/forum/forum57/86445-obedinit-znacheniya-dlya-sozdaniya-imeni-peremennoy/message406880</guid>
			<pubDate>Wed, 08 Mar 2023 19:32:00 -0500</pubDate>
			<category>RouterOS</category>
		</item>
		<item>
			<title>объединить значения для создания имени переменной</title>
			<description><![CDATA[<b><a href="http://mikrotik.moscow/forum/forum57/86445-obedinit-znacheniya-dlya-sozdaniya-imeni-peremennoy/message406879">объединить значения для создания имени переменной</a></b> <i>RouterOS</i> в форуме <a href="http://mikrotik.moscow/forum/forum57/">RouterOS</a>. <br />
			На RouterOS 6.48.6 работает. &nbsp;<br />{ :global test “:log info "ok parse with find"” :local variablename “test” [:parse [/system script environment get [find where name=$variablename] value]] }  <br />{ :global test “:log info "ok execute with find"” :local variablename “test” [:execute [/system script environment get [find where name=$variablename] value]] }  <br />{ :global test “:log info "ok parse directly"” :local variablename “test” [:parse [/system script environment get $variablename value]] }  <br />{ :global test “:log info "ok execute directly"” :local variablename “test” [:execute [/system script environment get $variablename value]] } <br />
			<i>08.03.2023 16:06:00, rextended.</i>]]></description>
			<link>http://mikrotik.moscow/forum/forum57/86445-obedinit-znacheniya-dlya-sozdaniya-imeni-peremennoy/message406879</link>
			<guid>http://mikrotik.moscow/forum/forum57/86445-obedinit-znacheniya-dlya-sozdaniya-imeni-peremennoy/message406879</guid>
			<pubDate>Wed, 08 Mar 2023 16:06:00 -0500</pubDate>
			<category>RouterOS</category>
		</item>
		<item>
			<title>объединить значения для создания имени переменной</title>
			<description><![CDATA[<b><a href="http://mikrotik.moscow/forum/forum57/86445-obedinit-znacheniya-dlya-sozdaniya-imeni-peremennoy/message406878">объединить значения для создания имени переменной</a></b> <i>RouterOS</i> в форуме <a href="http://mikrotik.moscow/forum/forum57/">RouterOS</a>. <br />
			Я пытался. Мне не удалось выполнить функцию таким образом. <br />
			<i>08.03.2023 13:46:00, Sertik.</i>]]></description>
			<link>http://mikrotik.moscow/forum/forum57/86445-obedinit-znacheniya-dlya-sozdaniya-imeni-peremennoy/message406878</link>
			<guid>http://mikrotik.moscow/forum/forum57/86445-obedinit-znacheniya-dlya-sozdaniya-imeni-peremennoy/message406878</guid>
			<pubDate>Wed, 08 Mar 2023 13:46:00 -0500</pubDate>
			<category>RouterOS</category>
		</item>
		<item>
			<title>объединить значения для создания имени переменной</title>
			<description><![CDATA[<b><a href="http://mikrotik.moscow/forum/forum57/86445-obedinit-znacheniya-dlya-sozdaniya-imeni-peremennoy/message406877">объединить значения для создания имени переменной</a></b> <i>RouterOS</i> в форуме <a href="http://mikrotik.moscow/forum/forum57/">RouterOS</a>. <br />
			Почему бы и нет? Попробуй сам. <br />
			<i>07.03.2023 12:50:00, rextended.</i>]]></description>
			<link>http://mikrotik.moscow/forum/forum57/86445-obedinit-znacheniya-dlya-sozdaniya-imeni-peremennoy/message406877</link>
			<guid>http://mikrotik.moscow/forum/forum57/86445-obedinit-znacheniya-dlya-sozdaniya-imeni-peremennoy/message406877</guid>
			<pubDate>Tue, 07 Mar 2023 12:50:00 -0500</pubDate>
			<category>RouterOS</category>
		</item>
		<item>
			<title>объединить значения для создания имени переменной</title>
			<description><![CDATA[<b><a href="http://mikrotik.moscow/forum/forum57/86445-obedinit-znacheniya-dlya-sozdaniya-imeni-peremennoy/message406876">объединить значения для создания имени переменной</a></b> <i>RouterOS</i> в форуме <a href="http://mikrotik.moscow/forum/forum57/">RouterOS</a>. <br />
			Интересно, а можно ли запустить код из функции вот так? [:parse [/system script environment get $variablename value]] или :execute [/system script environment get $variablename value] <br />
			<i>07.03.2023 12:48:00, Sertik.</i>]]></description>
			<link>http://mikrotik.moscow/forum/forum57/86445-obedinit-znacheniya-dlya-sozdaniya-imeni-peremennoy/message406876</link>
			<guid>http://mikrotik.moscow/forum/forum57/86445-obedinit-znacheniya-dlya-sozdaniya-imeni-peremennoy/message406876</guid>
			<pubDate>Tue, 07 Mar 2023 12:48:00 -0500</pubDate>
			<category>RouterOS</category>
		</item>
		<item>
			<title>объединить значения для создания имени переменной</title>
			<description><![CDATA[<b><a href="http://mikrotik.moscow/forum/forum57/86445-obedinit-znacheniya-dlya-sozdaniya-imeni-peremennoy/message406875">объединить значения для создания имени переменной</a></b> <i>RouterOS</i> в форуме <a href="http://mikrotik.moscow/forum/forum57/">RouterOS</a>. <br />
			P.S.: Работает только с глобальными переменными, не с локальными. <br />
			<i>07.03.2023 12:40:00, rextended.</i>]]></description>
			<link>http://mikrotik.moscow/forum/forum57/86445-obedinit-znacheniya-dlya-sozdaniya-imeni-peremennoy/message406875</link>
			<guid>http://mikrotik.moscow/forum/forum57/86445-obedinit-znacheniya-dlya-sozdaniya-imeni-peremennoy/message406875</guid>
			<pubDate>Tue, 07 Mar 2023 12:40:00 -0500</pubDate>
			<category>RouterOS</category>
		</item>
		<item>
			<title>объединить значения для создания имени переменной</title>
			<description><![CDATA[<b><a href="http://mikrotik.moscow/forum/forum57/86445-obedinit-znacheniya-dlya-sozdaniya-imeni-peremennoy/message406874">объединить значения для создания имени переменной</a></b> <i>RouterOS</i> в форуме <a href="http://mikrotik.moscow/forum/forum57/">RouterOS</a>. <br />
			Спасибо за совет. <br />
			<i>07.03.2023 12:36:00, Sertik.</i>]]></description>
			<link>http://mikrotik.moscow/forum/forum57/86445-obedinit-znacheniya-dlya-sozdaniya-imeni-peremennoy/message406874</link>
			<guid>http://mikrotik.moscow/forum/forum57/86445-obedinit-znacheniya-dlya-sozdaniya-imeni-peremennoy/message406874</guid>
			<pubDate>Tue, 07 Mar 2023 12:36:00 -0500</pubDate>
			<category>RouterOS</category>
		</item>
		<item>
			<title>объединить значения для создания имени переменной</title>
			<description><![CDATA[<b><a href="http://mikrotik.moscow/forum/forum57/86445-obedinit-znacheniya-dlya-sozdaniya-imeni-peremennoy/message406873">объединить значения для создания имени переменной</a></b> <i>RouterOS</i> в форуме <a href="http://mikrotik.moscow/forum/forum57/">RouterOS</a>. <br />
			Я никогда не писал «впихнуть код в память» (и не понимаю, что именно вы под этим имели в виду), так что не стоит говорить неточности. С помощью скриптинга можно создать скрипт в памяти (SCRIPT, а не скомпилированный CODE), а потом запустить его, но если вы ждёте, что об этом что-то будет явно сказано, то разочаруетесь — это преувеличение, но технически возможно. Минимальный пример на псевдокоде: &nbsp;<br />a = ":put " &nbsp;<br />b = "hello" &nbsp;<br />parse (a + b) &nbsp;<br /><br />Напоминаю, что RouterOS — это не полноценный язык программирования, например, там нет чисел с плавающей точкой и так далее. Нельзя рассуждать со скриптами, как с языком программирования. Помните: вы также можете использовать это, чтобы получить значение глобальной переменной, которая ранее не была объявлена: &nbsp;<br />:global wan1 1 &nbsp;<br />:global variablename "wanSta$wan1" &nbsp;<br />[:parse ":global $variablename \"10\""]  <br /># :put [[:parse ":global $variablename; :return \$$variablename"]]  <br /># другой способ: &nbsp;<br />:put [/system script environment get $variablename value]  <br /><br />Но если в этом случае $variablename не существует, вы получите ошибку. <br />
			<i>07.03.2023 12:24:00, rextended.</i>]]></description>
			<link>http://mikrotik.moscow/forum/forum57/86445-obedinit-znacheniya-dlya-sozdaniya-imeni-peremennoy/message406873</link>
			<guid>http://mikrotik.moscow/forum/forum57/86445-obedinit-znacheniya-dlya-sozdaniya-imeni-peremennoy/message406873</guid>
			<pubDate>Tue, 07 Mar 2023 12:24:00 -0500</pubDate>
			<category>RouterOS</category>
		</item>
		<item>
			<title>объединить значения для создания имени переменной</title>
			<description><![CDATA[<b><a href="http://mikrotik.moscow/forum/forum57/86445-obedinit-znacheniya-dlya-sozdaniya-imeni-peremennoy/message406872">объединить значения для создания имени переменной</a></b> <i>RouterOS</i> в форуме <a href="http://mikrotik.moscow/forum/forum57/">RouterOS</a>. <br />
			Итак, как можно подкинуть код в память и получить к нему доступ из скрипта Router OS? <br />
			<i>07.03.2023 09:42:00, Sertik.</i>]]></description>
			<link>http://mikrotik.moscow/forum/forum57/86445-obedinit-znacheniya-dlya-sozdaniya-imeni-peremennoy/message406872</link>
			<guid>http://mikrotik.moscow/forum/forum57/86445-obedinit-znacheniya-dlya-sozdaniya-imeni-peremennoy/message406872</guid>
			<pubDate>Tue, 07 Mar 2023 09:42:00 -0500</pubDate>
			<category>RouterOS</category>
		</item>
		<item>
			<title>объединить значения для создания имени переменной</title>
			<description><![CDATA[<b><a href="http://mikrotik.moscow/forum/forum57/86445-obedinit-znacheniya-dlya-sozdaniya-imeni-peremennoy/message406871">объединить значения для создания имени переменной</a></b> <i>RouterOS</i> в форуме <a href="http://mikrotik.moscow/forum/forum57/">RouterOS</a>. <br />
			Действительно, объявить переменную с выражением :global $Var невозможно, но сделать это через :parse можно, как в вашем примере выше. Однако тогда получить к ней доступ можно будет только через :parse. Я немного поэкспериментировал с вашим методом и понял, что динамические переменные действительно могут существовать. Вы можете формировать их имена, присваивать и получать значения без предварительного объявления. Вот примеры для наглядности:<br /><br />:global variablename "test"<br /><br />Вы можете создавать «динамические переменные» с случайно сгенерированными именами и присваивать им значения:<br /><br />:local name<br />:for i from=1 to 3 do={<br />:set name ("$variablename"."$i")<br />[[:parse ":global $name; set $name $i"]]<br />}<br /><br />После этого в окружении появятся переменные test1=1, test2=2 и test3=3.<br /><br />Можно также получать значения из таких «динамических переменных», не зная их имён, а зная алгоритм их формирования:<br /><br />:for i from=1 to 3 do={<br />:set name ("$variablename"."$i")<br />[[:parse ":global $name; log error (\$$name+5)"]]<br />}<br /><br />Всё работает, но непонятно, зачем это может быть полезно на практике? Наверное, в процессах сортировки? <br />
			<i>14.11.2022 06:41:00, Sertik.</i>]]></description>
			<link>http://mikrotik.moscow/forum/forum57/86445-obedinit-znacheniya-dlya-sozdaniya-imeni-peremennoy/message406871</link>
			<guid>http://mikrotik.moscow/forum/forum57/86445-obedinit-znacheniya-dlya-sozdaniya-imeni-peremennoy/message406871</guid>
			<pubDate>Mon, 14 Nov 2022 06:41:00 -0500</pubDate>
			<category>RouterOS</category>
		</item>
		<item>
			<title>объединить значения для создания имени переменной</title>
			<description><![CDATA[<b><a href="http://mikrotik.moscow/forum/forum57/86445-obedinit-znacheniya-dlya-sozdaniya-imeni-peremennoy/message406870">объединить значения для создания имени переменной</a></b> <i>RouterOS</i> в форуме <a href="http://mikrotik.moscow/forum/forum57/">RouterOS</a>. <br />
			Что ты вообще пишешь??? Кому ты отвечаешь??? Ты мне объясняешь, как работает мой скрипт??? <br />
			<i>11.11.2022 13:19:00, rextended.</i>]]></description>
			<link>http://mikrotik.moscow/forum/forum57/86445-obedinit-znacheniya-dlya-sozdaniya-imeni-peremennoy/message406870</link>
			<guid>http://mikrotik.moscow/forum/forum57/86445-obedinit-znacheniya-dlya-sozdaniya-imeni-peremennoy/message406870</guid>
			<pubDate>Fri, 11 Nov 2022 13:19:00 -0500</pubDate>
			<category>RouterOS</category>
		</item>
		<item>
			<title>объединить значения для создания имени переменной</title>
			<description><![CDATA[<b><a href="http://mikrotik.moscow/forum/forum57/86445-obedinit-znacheniya-dlya-sozdaniya-imeni-peremennoy/message406869">объединить значения для создания имени переменной</a></b> <i>RouterOS</i> в форуме <a href="http://mikrotik.moscow/forum/forum57/">RouterOS</a>. <br />
			Здравствуйте, скрипты RouterOS не поддерживают объявление переменных, имена которых берутся из значения других переменных. По вашему вопросу: переменная не объявлена в текущей области видимости, поэтому вы не можете получить её значение, пока в скрипт не будет добавлено ;global varname;. С уважением, Maris B. Если вы всё равно не знаете имя переменной, вы всё равно не сможете с ней работать в скрипте без объявления. Значит, вся суета с «динамическими переменными» теряет смысл. <br />
			<i>11.11.2022 12:32:00, Sertik.</i>]]></description>
			<link>http://mikrotik.moscow/forum/forum57/86445-obedinit-znacheniya-dlya-sozdaniya-imeni-peremennoy/message406869</link>
			<guid>http://mikrotik.moscow/forum/forum57/86445-obedinit-znacheniya-dlya-sozdaniya-imeni-peremennoy/message406869</guid>
			<pubDate>Fri, 11 Nov 2022 12:32:00 -0500</pubDate>
			<category>RouterOS</category>
		</item>
		<item>
			<title>объединить значения для создания имени переменной</title>
			<description><![CDATA[<b><a href="http://mikrotik.moscow/forum/forum57/86445-obedinit-znacheniya-dlya-sozdaniya-imeni-peremennoy/message406868">объединить значения для создания имени переменной</a></b> <i>RouterOS</i> в форуме <a href="http://mikrotik.moscow/forum/forum57/">RouterOS</a>. <br />
			Что? Примеры? <br />
			<i>07.11.2022 15:23:00, rextended.</i>]]></description>
			<link>http://mikrotik.moscow/forum/forum57/86445-obedinit-znacheniya-dlya-sozdaniya-imeni-peremennoy/message406868</link>
			<guid>http://mikrotik.moscow/forum/forum57/86445-obedinit-znacheniya-dlya-sozdaniya-imeni-peremennoy/message406868</guid>
			<pubDate>Mon, 07 Nov 2022 15:23:00 -0500</pubDate>
			<category>RouterOS</category>
		</item>
		<item>
			<title>объединить значения для создания имени переменной</title>
			<description><![CDATA[<b><a href="http://mikrotik.moscow/forum/forum57/86445-obedinit-znacheniya-dlya-sozdaniya-imeni-peremennoy/message406867">объединить значения для создания имени переменной</a></b> <i>RouterOS</i> в форуме <a href="http://mikrotik.moscow/forum/forum57/">RouterOS</a>. <br />
			Чтобы считать значение переменной внутри другой объявленной переменной: &nbsp;<br />:global testx [:parse “global $variablename;:global testx $$variablename”]  <br />:put $testx &nbsp;<br /><br />В этом примере вы выводите имя переменной в значение другой переменной. А можно ли сделать наоборот? То есть отобразить значение переменной в имени другой переменной? И при этом чтобы она была объявлена? <br />
			<i>07.11.2022 12:32:00, Sertik.</i>]]></description>
			<link>http://mikrotik.moscow/forum/forum57/86445-obedinit-znacheniya-dlya-sozdaniya-imeni-peremennoy/message406867</link>
			<guid>http://mikrotik.moscow/forum/forum57/86445-obedinit-znacheniya-dlya-sozdaniya-imeni-peremennoy/message406867</guid>
			<pubDate>Mon, 07 Nov 2022 12:32:00 -0500</pubDate>
			<category>RouterOS</category>
		</item>
		<item>
			<title>объединить значения для создания имени переменной</title>
			<description><![CDATA[<b><a href="http://mikrotik.moscow/forum/forum57/86445-obedinit-znacheniya-dlya-sozdaniya-imeni-peremennoy/message406866">объединить значения для создания имени переменной</a></b> <i>RouterOS</i> в форуме <a href="http://mikrotik.moscow/forum/forum57/">RouterOS</a>. <br />
			Я хочу создать функцию myFunc, желательно в отдельном скрипте, и вызывать её из другого скрипта без использования [$myFunc], а через вызов через окружение. <br />
			<i>09.03.2023 08:14:00, Sertik.</i>]]></description>
			<link>http://mikrotik.moscow/forum/forum57/86445-obedinit-znacheniya-dlya-sozdaniya-imeni-peremennoy/message406866</link>
			<guid>http://mikrotik.moscow/forum/forum57/86445-obedinit-znacheniya-dlya-sozdaniya-imeni-peremennoy/message406866</guid>
			<pubDate>Thu, 09 Mar 2023 08:14:00 -0500</pubDate>
			<category>RouterOS</category>
		</item>
		<item>
			<title>объединить значения для создания имени переменной</title>
			<description><![CDATA[<b><a href="http://mikrotik.moscow/forum/forum57/86445-obedinit-znacheniya-dlya-sozdaniya-imeni-peremennoy/message406865">объединить значения для создания имени переменной</a></b> <i>RouterOS</i> в форуме <a href="http://mikrotik.moscow/forum/forum57/">RouterOS</a>. <br />
			[:execute [/system script environment get [find where name=$variablename] value]] Эта строка последняя в скрипте. Некому ждать. Почему можно выполнить log info, а :put — нельзя? Непонятно. И так тоже не работает: :global test do={:log info мама} :local variablename "test" [[:parse "[/system script environment get [find where name=$variablename] value]"]] <br />
			<i>09.03.2023 07:35:00, Sertik.</i>]]></description>
			<link>http://mikrotik.moscow/forum/forum57/86445-obedinit-znacheniya-dlya-sozdaniya-imeni-peremennoy/message406865</link>
			<guid>http://mikrotik.moscow/forum/forum57/86445-obedinit-znacheniya-dlya-sozdaniya-imeni-peremennoy/message406865</guid>
			<pubDate>Thu, 09 Mar 2023 07:35:00 -0500</pubDate>
			<category>RouterOS</category>
		</item>
		<item>
			<title>объединить значения для создания имени переменной</title>
			<description><![CDATA[<b><a href="http://mikrotik.moscow/forum/forum57/86445-obedinit-znacheniya-dlya-sozdaniya-imeni-peremennoy/message406864">объединить значения для создания имени переменной</a></b> <i>RouterOS</i> в форуме <a href="http://mikrotik.moscow/forum/forum57/">RouterOS</a>. <br />
			Мой код: :global $wan1 1; :put ("wanSta" . $wan1); возвращает «wanSta1», моя переменная тоже так называется. Если я хочу что-то назначить: :set ("wanStatus" . $wanIndex) 10 — ничего не возвращает. <br />
			<i>10.09.2021 23:03:00, DimebagDarrell.</i>]]></description>
			<link>http://mikrotik.moscow/forum/forum57/86445-obedinit-znacheniya-dlya-sozdaniya-imeni-peremennoy/message406864</link>
			<guid>http://mikrotik.moscow/forum/forum57/86445-obedinit-znacheniya-dlya-sozdaniya-imeni-peremennoy/message406864</guid>
			<pubDate>Fri, 10 Sep 2021 23:03:00 -0400</pubDate>
			<category>RouterOS</category>
		</item>
	</channel>
</rss>
