<?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: подстановка и разыменование переменных]]></title>
		<link>http://forum.script-coding.com/viewtopic.php?id=3125</link>
		<atom:link href="http://forum.script-coding.com/extern.php?action=feed&amp;tid=3125&amp;type=rss" rel="self" type="application/rss+xml" />
		<description><![CDATA[Недавние сообщения в теме «CMD/BAT: подстановка и разыменование переменных».]]></description>
		<lastBuildDate>Sun, 10 May 2009 18:46:20 +0000</lastBuildDate>
		<generator>PunBB</generator>
		<item>
			<title><![CDATA[CMD/BAT: подстановка и разыменование переменных]]></title>
			<link>http://forum.script-coding.com/viewtopic.php?pid=22779#p22779</link>
			<description><![CDATA[<p><strong>Вывод отдельных символов из значения переменной.</strong></p><p>Сама конструкция имеет вид:<br /></p><div class="codebox"><pre><code>%var:~№_символа[,кол-во]%</code></pre></div><p><strong>&quot;~&quot;</strong> - расширение переменной.<br /><strong>№_символа</strong> - с какого символа начать вывод. Нумерация начинается с нуля.<br /><strong>кол-во</strong> - сколько символов вывести.Если не указано, то выводятся весь остаток начиная с указанного символа.<br />Если оба значения (длина и число пропускаемых символов) отрицательны, следующим используемым значением будет длина значения переменной среды, добавленной к указанному значению пропуска или указанной длины.</p><div class="codebox"><pre><code>@echo off
set A=12345
    ::задаем значение переменной A
echo %A:~0,1%
    ::вывод ПЕРВОГО СИМВОЛА из значения переменной
echo %A:~-1,1%
    ::вывод ПОСЛЕДНЕГО СИМВОЛА из значения
echo %A:~-3%
    ::вывод ТРЁХ ПОСЛЕДНИХ символов
echo %A:~0,3%
    ::вывод ТРЁХ ПЕРВЫХ символов
echo %A:~1%
    ::вывод значения БЕЗ ПЕРВОГО символа
%PATH:~-10%
    ::извлечет последние 10 символов переменной PATH.
%PATH:~0,-2%
    ::извлечет все символы переменной PATH, за исключением 2-х последних.</code></pre></div><p><strong>Подстановка (Регулярные выражения).</strong></p><p>Используется для замены определённых символов (или групп символов) другим значением.<br />Конструкция:<br /></p><div class="codebox"><pre><code>%var:str=нов.значение%</code></pre></div><p>пример:<br /></p><div class="codebox"><pre><code>SET B=1\2\3\4\5
    ::задание значения переменной
ECHO %B:\=//%
    ::вывод строки &quot;прошедшей цензуру&quot;
SET B=%B:\=//%
    ::обновление самой переменной с заменой &quot;\&quot; на &quot;//&quot;
ECHO %B%</code></pre></div><p>Обработке подлежит любое удовлетворяющее вхождение строки, независимо от регистра символов.<br />Заменяемое значение &quot;str&quot; может начинаться со звездочки, и в этом случае это будет соответствовать любому началу строки до первого вхождения оставшейся части &quot;str&quot;.</p><p>Пример:<br /></p><div class="codebox"><pre><code>set var=12345
set var=%var:*5=какие-то числа перед цифрой 5%
echo %var%</code></pre></div><p>См. также <a href="http://forum.script-coding.com/viewtopic.php?id=2390">CMD/BAT: транслитерация текста</a>.</p>]]></description>
			<author><![CDATA[null@example.com (kiber_punk)]]></author>
			<pubDate>Sun, 10 May 2009 18:46:20 +0000</pubDate>
			<guid>http://forum.script-coding.com/viewtopic.php?pid=22779#p22779</guid>
		</item>
	</channel>
</rss>
