<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
	<title type="html"><![CDATA[Серый форум &mdash; CMD/BAT: Проблема с циклом]]></title>
	<link rel="self" href="https://forum.script-coding.com/extern.php?action=feed&amp;tid=12916&amp;type=atom" />
	<updated>2017-08-16T05:38:45Z</updated>
	<generator>PunBB</generator>
	<id>https://forum.script-coding.com/viewtopic.php?id=12916</id>
		<entry>
			<title type="html"><![CDATA[Re: CMD/BAT: Проблема с циклом]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=118346#p118346" />
			<content type="html"><![CDATA[<p>Затруднение не с циклом, а с раскрытием переменных окружения в условии команды IF.<br />Получается синтаксически недопустимая команда:<br /></p><div class="codebox"><pre><code>IF &quot;echo &quot;hello world&quot;&quot; neq &quot;&quot; (</code></pre></div><p>Возможные решения:<br />1) отложенное раскрытие переменных;<br />2) </p><div class="codebox"><pre><code>IF defined a (</code></pre></div><p>3) если на выходе КОМАНДА лишь одна строка можно обойтись без лишних переменных<br /></p><div class="codebox"><pre><code>FOR /F &quot;delims=&quot; %%i IN (&#039;КОМАНДА&#039;) DO (
	IF &quot;%%i&quot; neq &quot;&quot; %%i (
		%%i
	)
)
</code></pre></div><p>4) на самом деле проверка на непустую строку вообще не нужна - ну будет попытка выполнить пустую строку как код и ничего не произойдёт.</p>]]></content>
			<author>
				<name><![CDATA[Мальчик-гей]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=30832</uri>
			</author>
			<updated>2017-08-16T05:38:45Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=118346#p118346</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[CMD/BAT: Проблема с циклом]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=118325#p118325" />
			<content type="html"><![CDATA[<p>Я использую вот такую ерундень:</p><div class="codebox"><pre><code>
	FOR /F &quot;delims=&quot; %%i IN (&#039;КОМАНДА&#039;) DO (set a=%%i)
	IF &quot;%a%&quot; neq &quot;&quot; (
		%a%
		set a=
	)
</code></pre></div><p>Суть в том, что на выходе КОМАНДЫ - код, который нужно выполнить. Всё работает до того момента, как в этом коде появляется ! текст с пробелами в кавычках ( echo &quot;hello world&quot; ). Если там будет команда с аргументами, соответственно разделёнными пробелами ( nircmd savescreenshot okno.png ), то всё работает и если текст в кавычках без пробелов ( echo &quot;abcdef&quot; ) - тоже. Батник просто закрывается без объяснения причин. Что мне с этим делать?</p>]]></content>
			<author>
				<name><![CDATA[zax2002]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=38706</uri>
			</author>
			<updated>2017-08-14T20:55:15Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=118325#p118325</id>
		</entry>
</feed>
