<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
	<channel>
		<title><![CDATA[Серый форум &mdash; CMD/BAT: Теоретический вопрос по enabledelayedexpansion]]></title>
		<link>https://forum.script-coding.com/viewtopic.php?id=9567</link>
		<atom:link href="https://forum.script-coding.com/extern.php?action=feed&amp;tid=9567&amp;type=rss" rel="self" type="application/rss+xml" />
		<description><![CDATA[Недавние сообщения в теме «CMD/BAT: Теоретический вопрос по enabledelayedexpansion».]]></description>
		<lastBuildDate>Sun, 04 May 2014 20:51:36 +0000</lastBuildDate>
		<generator>PunBB</generator>
		<item>
			<title><![CDATA[Re: CMD/BAT: Теоретический вопрос по enabledelayedexpansion]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=82663#p82663</link>
			<description><![CDATA[<div class="quotebox"><blockquote><p>я просто не понимаю, почему там в статье стек это &quot;к сожалению&quot;.</p></blockquote></div><p>Возможно к тому, что нет возможности сделать это отдельно от «setlocal», а не про сам стек собственно.</p><div class="quotebox"><blockquote><p>P.S. (извиняюсь, просто небольщой офф-топ, не мог удержаться <img src="//forum.script-coding.com/img/smilies/smile.png" width="15" height="15" />) …</p></blockquote></div><p>Да, это именно стек. В теории алгоритмов и в программировании стек является одним из важнейших инструментов. И на уровне машинной логики, и на уровне микропрограмм.</p><p>Для таких ЯВУ, как С и ему наследующие, стек является образующей технологией обработки функций — аргументы функций помещаются в стек в обратном порядке, что позволяет прозрачно использовать функции с переменным числом аргументов.</p><p>Есть даже такой потрясающий ЯВУ (ещё более «низкоуровневый», нежели С), как Forth (<a href="http://ru.wikipedia.org/wiki/Forth">Форт (язык программирования) — Википедия</a>), где вся идеология полностью построена на стеке и постфиксной записи.</p>]]></description>
			<author><![CDATA[null@example.com (alexii)]]></author>
			<pubDate>Sun, 04 May 2014 20:51:36 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=82663#p82663</guid>
		</item>
		<item>
			<title><![CDATA[Re: CMD/BAT: Теоретический вопрос по enabledelayedexpansion]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=82661#p82661</link>
			<description><![CDATA[<div class="quotebox"><cite>alexii пишет:</cite><blockquote><p>Стек в данном случае организуется не отложенным раскрытием, а самой командой «setlocal».</p></blockquote></div><p>Да это я понял, что дело в «setlocal», я просто не понимаю, почему там в статье стек это &quot;к сожалению&quot;. А без «setlocal» стек не используется что ли? Я вот щас что-то припоминаю, что бывает какое-то &quot;переполнение стека&quot; — может имеется в виду это? Я извиняюсь, если вопросы тупые, просто я не программист и очевидные для других моменты для меня бывают непонятны.</p><p>P.S. (извиняюсь, просто небольщой офф-топ, не мог удержаться :)) вообще, у меня слово &quot;стек&quot; ассоциируется с такими (если кто помнит) тупыми советскими программируемыми калькуляторами 1980-х годов, они программировались на идиотской, так называемой &quot;обратной польской бесскобочной логике&quot;, там числа сначала загонялись в стек, а потом вводились команды. Я как ни бился башкой об стену, но так к этой &quot;бесскобочности&quot; привыкнуть не смог, так что слово &quot;стек&quot; вызывает у меня сугубо негативные эмоции :)</p>]]></description>
			<author><![CDATA[null@example.com (EgorS)]]></author>
			<pubDate>Sun, 04 May 2014 19:09:18 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=82661#p82661</guid>
		</item>
		<item>
			<title><![CDATA[Re: CMD/BAT: Теоретический вопрос по enabledelayedexpansion]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=82660#p82660</link>
			<description><![CDATA[<p>Ага. Ну, данной статье можно верить почти во всём. На самом деле не «обновлялись бы именно в момент изменения, а не при выходе за &quot;скобки&quot; », как у Вас, и не «проблема с раскрытием переменных только после выхода из самого внешнего оператора скобки», как в оригинале. Проблема как раз напротив, состоит в том, что переменные окружения, обрамлённые символами «%», раскрываются командным процессором <strong>до</strong> входа в скобки (точнее в момент входа). Именно потому мы «видим» вместо них то значение, которое было в них <strong>до</strong> входа в скобки.</p><p>Теперь именно по первому вопросу:<br /></p><div class="quotebox"><blockquote><p>Но я в одном месте прочитал мельком, что включение этого режима не только хорошо (так как удобно), но и плохо, потому что в этом режиме &quot;все переменные помещаются в стек&quot;. Разъясните, пожалуйста, что такое &quot;стек&quot; и почему плохо, что в него помещаются переменные?</p></blockquote></div><p>Стек в данном случае организуется не отложенным раскрытием, а самой командой «setlocal». Ну, вот так реализовали. Вся «плохость» состоит только в этом.</p><p>Как это выглядит? Как обычный стек, FILO, «первым пришёл — последним ушёл». Кладётся на вершину стека по использованию команды setlocal, снимается по команде endlocal или завершению контекста текущего пакетного файла.</p>]]></description>
			<author><![CDATA[null@example.com (alexii)]]></author>
			<pubDate>Sun, 04 May 2014 18:31:07 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=82660#p82660</guid>
		</item>
		<item>
			<title><![CDATA[Re: CMD/BAT: Теоретический вопрос по enabledelayedexpansion]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=82658#p82658</link>
			<description><![CDATA[<p><a href="http://www.rsdn.ru/article/winshell/NTCommandProcessor.xml#EKZAE">ссылка</a> — там «<span style="color: brown">К сожалению, и данный способ содержит недостаток, а именно, “двойной эффект”, и, кроме “включения” оператора “!”, сохраняет все переменные в стек (см. описание команд setlocal/endlocal далее).</span>»</p>]]></description>
			<author><![CDATA[null@example.com (EgorS)]]></author>
			<pubDate>Sun, 04 May 2014 17:01:38 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=82658#p82658</guid>
		</item>
		<item>
			<title><![CDATA[Re: CMD/BAT: Теоретический вопрос по enabledelayedexpansion]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=82655#p82655</link>
			<description><![CDATA[<p>Приведите ссылку на «одно место».</p>]]></description>
			<author><![CDATA[null@example.com (alexii)]]></author>
			<pubDate>Sun, 04 May 2014 15:55:53 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=82655#p82655</guid>
		</item>
		<item>
			<title><![CDATA[CMD/BAT: Теоретический вопрос по enabledelayedexpansion]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=82649#p82649</link>
			<description><![CDATA[<p>Как известно, команда <span style="color: brown">SETLOCAL ENABLEDELAYEDEXPANSION</span> включает так наз. режим &quot;отложенного раскрытия переменных&quot;, то есть чтобы переменные, измененные внутри &quot;скобок&quot; (типа FOR … DO (вот тут) …) обновлялись бы именно в момент изменения, а не при выходе за &quot;скобки&quot; (при этом к переменным надо обращаться через восклицательный знак: <span style="color: brown">!SomeVar!</span>, а не через процент, как обычно) — это всё понятно. Но я в одном месте прочитал мельком, что включение этого режима не только хорошо (так как удобно), но и плохо, потому что в этом режиме &quot;все переменные помещаются в стек&quot;. Разъясните, пожалуйста, что такое &quot;стек&quot; и почему плохо, что в него помещаются переменные?</p>]]></description>
			<author><![CDATA[null@example.com (EgorS)]]></author>
			<pubDate>Sun, 04 May 2014 10:56:04 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=82649#p82649</guid>
		</item>
	</channel>
</rss>
