<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
	<title type="html"><![CDATA[Серый форум &mdash; CMD/BAT: Цикл for с одной строкой]]></title>
	<link rel="self" href="https://forum.script-coding.com/extern.php?action=feed&amp;tid=6257&amp;type=atom" />
	<updated>2011-09-28T20:59:59Z</updated>
	<generator>PunBB</generator>
	<id>https://forum.script-coding.com/viewtopic.php?id=6257</id>
		<entry>
			<title type="html"><![CDATA[Re: CMD/BAT: Цикл for с одной строкой]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=51943#p51943" />
			<content type="html"><![CDATA[<p>Большое спасибо</p>]]></content>
			<author>
				<name><![CDATA[Александр_foxware]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=26976</uri>
			</author>
			<updated>2011-09-28T20:59:59Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=51943#p51943</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: CMD/BAT: Цикл for с одной строкой]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=51916#p51916" />
			<content type="html"><![CDATA[<p><strong>Александр_foxware</strong>, один вариант уже указал коллега <strong>shiz</strong>. Не забывайте про возможность изменения разделителя посредством замены, например: «%var:-= %».</p><p>Второй вариант — разбор посредством вызова процедуры:<br /></p><div class="codebox"><pre><code>@echo off
setlocal enableextensions enabledelayedexpansion

set extensionfind=dbf;cdx;dd;md

call :Parse %extensionfind:;= %

endlocal
exit /b 0

:Parse
    setlocal enableextensions enabledelayedexpansion
:Repeat
    set sValue=%~1

    if defined sValue (
        echo [%sValue%]
        shift
        goto :Repeat
    )

    echo Done

    endlocal
    exit /b 0</code></pre></div><p>Использование процедуры даёт большие возможности в плане разбора. Например, можно в начале пропустить какие-то аргументы («shift /n» в начале), можно читать только чётные или нечётные аргументы («shift /2» внутри блока разбора) и т.п.</p>]]></content>
			<author>
				<name><![CDATA[alexii]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=1844</uri>
			</author>
			<updated>2011-09-28T00:23:55Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=51916#p51916</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: CMD/BAT: Цикл for с одной строкой]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=51913#p51913" />
			<content type="html"><![CDATA[<p>Используйте шаблон-звездочку для указания &quot;всего остального&quot;:<br />либо так<br /></p><div class="codebox"><pre><code>
for /f &quot;tokens=* delims=,&quot; ...</code></pre></div><p>либо так<br /></p><div class="codebox"><pre><code>
for /f &quot;tokens=1* delims=,&quot; ...</code></pre></div>]]></content>
			<author>
				<name><![CDATA[Rumata]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=24846</uri>
			</author>
			<updated>2011-09-27T22:32:35Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=51913#p51913</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: CMD/BAT: Цикл for с одной строкой]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=51912#p51912" />
			<content type="html"><![CDATA[<p>Попробуй просто </p><div class="codebox"><pre><code>for %%a in (%extensionfind%) do echo %%a</code></pre></div>]]></content>
			<author>
				<name><![CDATA[shiz]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=26249</uri>
			</author>
			<updated>2011-09-27T21:38:20Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=51912#p51912</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[CMD/BAT: Цикл for с одной строкой]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=51907#p51907" />
			<content type="html"><![CDATA[<p>Здраствуйте! Пытаюсь сладить с конструкцией for, что-то не получается.<br />Как сделать так чтобы в цикле перебрал значения из одной строки.</p><div class="codebox"><pre><code>set extensionfind=dbf,cdx,dd,md
for /f &quot;Tokens=1-10 delims=,&quot; %%a in (&quot;%extensionfind%&quot;) do echo %%a &gt;&gt; 1.txt</code></pre></div><p>Берет только первое значение в строке. Я понимаю что в следующих строчках %%b,%%c,%%d будут мои значения. Но количество значений меняется да и как то неудобно писать для каждого значения строчку.</p><div class="codebox"><pre><code>set extensionfind=dbf,cdx,dd,md
for /f &quot;Tokens=1-10 delims=,&quot; %%a in (&quot;%extensionfind%&quot;) do (
	echo %%a &gt;&gt; finding.txt
	echo %%b &gt;&gt; finding.txt
	echo %%c &gt;&gt; finding.txt
	echo %%d &gt;&gt; finding.txt
	echo %%e &gt;&gt; finding.txt
)</code></pre></div><p>И при таком варианте, когда пятого значения нет выдаст что режим отображения включен.</p>]]></content>
			<author>
				<name><![CDATA[Александр_foxware]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=26976</uri>
			</author>
			<updated>2011-09-27T15:23:21Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=51907#p51907</id>
		</entry>
</feed>
