<?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=8141&amp;type=atom" />
	<updated>2013-03-17T19:51:10Z</updated>
	<generator>PunBB</generator>
	<id>https://forum.script-coding.com/viewtopic.php?id=8141</id>
		<entry>
			<title type="html"><![CDATA[Re: CMD/BAT: Работа с переменными]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=70408#p70408" />
			<content type="html"><![CDATA[<p>Сообщение выводится командой ECHO в конце. А вот его значение будет зависить от успешности исполнения условия.<br />По поводу 12 и 03, тут я ошибся. Хотел написать 12 и 08. Попробуйте, получите сообщение о неверном числе, а iValue3 останется пустой.<br />А можно ввести 13 и DК или ёпрст, кто знает, что придет в голову бестолковому пользователю.</p>]]></content>
			<author>
				<name><![CDATA[privatbox]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=29790</uri>
			</author>
			<updated>2013-03-17T19:51:10Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=70408#p70408</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: CMD/BAT: Работа с переменными]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=70384#p70384" />
			<content type="html"><![CDATA[<p>Эм... если я правильно понимаю код, то выполнятся действия, выведется хеппи енд, а потом еще выведется абсент, а задача другая<br /></p><div class="quotebox"><blockquote><p>Попробуйте ввести 12 и 03.</p></blockquote></div><p>Попробовал, все отлично считается</p>]]></content>
			<author>
				<name><![CDATA[novashdima]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=29785</uri>
			</author>
			<updated>2013-03-16T00:18:11Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=70384#p70384</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: CMD/BAT: Работа с переменными]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=70382#p70382" />
			<content type="html"><![CDATA[<div class="codebox"><pre><code>@echo off
setlocal enableextensions enabledelayedexpansion

set /p sValue1=Enter value of variable 1: 
set /p sValue2=Enter value of variable 2:
set sMessage=absent

if defined sValue1 (
    if defined sValue2 (
        set /a iValue3 = sValue1 + sValue2
        &gt;0_Log1.txt echo !iValue3!
        set sMessage=happy end
    )
)

echo %sMessage%

endlocal
exit /b 0</code></pre></div><p>Как то так. Ничего лучшего в голову уже не приходит.<br />Но в данном конкретном случае придется еще громоздить блок проверки и преобразования введенных значений из string в integer. <br />Попробуйте ввести 12 и 03.</p>]]></content>
			<author>
				<name><![CDATA[privatbox]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=29790</uri>
			</author>
			<updated>2013-03-15T23:07:08Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=70382#p70382</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: CMD/BAT: Работа с переменными]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=70302#p70302" />
			<content type="html"><![CDATA[<p>Если какая-то из переменных не введена, то я должен вывести absent, можно ли сделать покрасивше такое?<br /></p><div class="codebox"><pre><code>@echo off
setlocal enableextensions enabledelayedexpansion

set /p sValue1=Enter value of variable 1: 
set /p sValue2=Enter value of variable 2: 

if defined sValue1 (
    if defined sValue2 (
        set /a iValue3 = sValue1 + sValue2
        &gt;0_Log1.txt echo !iValue3!
        echo happy end
    ) else ( echo %absent )
) else ( echo %absent )

endlocal
exit /b 0</code></pre></div>]]></content>
			<author>
				<name><![CDATA[novashdima]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=29785</uri>
			</author>
			<updated>2013-03-14T16:56:59Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=70302#p70302</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: CMD/BAT: Работа с переменными]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=70241#p70241" />
			<content type="html"><![CDATA[<p>Еще один способ. Может неуклюжий - но у меня работает!<br /></p><div class="codebox"><pre><code>@ECHO OFF
::Присваиваем пустое значение
SET/p MyVar=&quot;&quot;&lt;nul

CALL :CheckValue %MyVar% IsEmpty Value 

ECHO MyVar %Value% &amp; pause
EXIT

:CheckValue
Setlocal
SET MyVarValue=%~1
EndLocal &amp; SET %2=%MyVarValue%
EXIT/b</code></pre></div>]]></content>
			<author>
				<name><![CDATA[privatbox]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=29790</uri>
			</author>
			<updated>2013-03-13T13:20:10Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=70241#p70241</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: CMD/BAT: Работа с переменными]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=70235#p70235" />
			<content type="html"><![CDATA[<p>«setlocal enableextensions» — разрешить расширенную обработку команд. Что конкретно сие даёт для каждой команды — смотреть в описании каждой команды. Включено по умолчанию.</p><div class="quotebox"><blockquote><p>И раз уж так, где можно почитать ман по основам? Читать маны к каждой конкретной функции можно, но не отражает, как же их всех вместе юзать.</p></blockquote></div><p><a href="http://forum.script-coding.com/viewtopic.php?id=2887">CMD/BAT: Коллекция ссылок</a></p>]]></content>
			<author>
				<name><![CDATA[alexii]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=1844</uri>
			</author>
			<updated>2013-03-13T11:34:44Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=70235#p70235</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: CMD/BAT: Работа с переменными]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=70234#p70234" />
			<content type="html"><![CDATA[<p>Ага, понятно, как по мне немного бредово, почему не как в обычном языке программирования, построчное выполнение, тогда не будет вопросов, что делать с переменной, сейчас юзать или потом?<br />А enableextensions?<br />И раз уж так, где можно почитать ман по основам? Читать маны к каждой конкретной функции можно, но не отражает, как же их всех вместе юзать.</p>]]></content>
			<author>
				<name><![CDATA[novashdima]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=29785</uri>
			</author>
			<updated>2013-03-13T11:23:12Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=70234#p70234</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: CMD/BAT: Работа с переменными]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=70225#p70225" />
			<content type="html"><![CDATA[<div class="quotebox"><blockquote><p>Зачем ivalue3 заключать в !!<br /> Что делает включение опций: enableextensions enabledelayedexpansion?</p></blockquote></div><p>Поскольку значение переменной окружения задаётся внутри операторных скобок и раскрывается эта же переменная окружения также внутри тех же операторных скобок — нужно использовать не символы процента — %Var% (в этом случае раскрытие переменной окружения и вычисление её значения произойдёт на момент входа в скобки), а символы отложенного раскрытия — !Var! (в этом случае раскрытие переменной окружения и вычисление её значения произойдёт в момент её использования). А для разрешения самой возможности использования отложенного раскрытия как раз и используется команда «setlocal enabledelayedexpansion».</p>]]></content>
			<author>
				<name><![CDATA[alexii]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=1844</uri>
			</author>
			<updated>2013-03-13T09:49:33Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=70225#p70225</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: CMD/BAT: Работа с переменными]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=70215#p70215" />
			<content type="html"><![CDATA[<p>Спасибо, работает, но есть вопросы:<br />Зачем ivalue3 заключать в !!<br />Что делает включение опций: enableextensions enabledelayedexpansion?</p>]]></content>
			<author>
				<name><![CDATA[novashdima]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=29785</uri>
			</author>
			<updated>2013-03-13T02:23:25Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=70215#p70215</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: CMD/BAT: Работа с переменными]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=70196#p70196" />
			<content type="html"><![CDATA[<div class="codebox"><pre><code>@echo off
setlocal enableextensions enabledelayedexpansion

set /p sValue1=Enter value of variable 1: 
set /p sValue2=Enter value of variable 2: 

if defined sValue1 (
    if defined sValue2 (
        set /a iValue3 = sValue1 + sValue2
        &gt;0_Log1.txt echo !iValue3!
        echo happy end
    )
)

endlocal
exit /b 0
</code></pre></div>]]></content>
			<author>
				<name><![CDATA[alexii]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=1844</uri>
			</author>
			<updated>2013-03-11T22:52:51Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=70196#p70196</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: CMD/BAT: Работа с переменными]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=70192#p70192" />
			<content type="html"><![CDATA[<div class="codebox"><pre><code>@echo off
setlocal enableextensions enabledelayedexpansion
set /p %1=&quot;Enter value of variable 1: &quot;
set /p %2=&quot;Enter value of variable 2: &quot;
if (not defined %1) or (not defined %2) goto label_1
set p1=%1%
set p2=%2%
set /A p3=p1+p2
echo %p3% &gt; 0_Log1.txt
endlocal
goto label_2
: label_1
echo %absent
pause
exit
: label_2
echo %happy end
pause
exit</code></pre></div>]]></content>
			<author>
				<name><![CDATA[novashdima]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=29785</uri>
			</author>
			<updated>2013-03-11T21:41:31Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=70192#p70192</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: CMD/BAT: Работа с переменными]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=70191#p70191" />
			<content type="html"><![CDATA[<p><strong>novashdima</strong>, приведите <em>Ваш</em> код.</p>]]></content>
			<author>
				<name><![CDATA[alexii]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=1844</uri>
			</author>
			<updated>2013-03-11T20:54:36Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=70191#p70191</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: CMD/BAT: Работа с переменными]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=70190#p70190" />
			<content type="html"><![CDATA[<p>А что делает<br />set sParam1=%~1<br />И у меня ругается:<br />Непредвиденное появление: defined</p>]]></content>
			<author>
				<name><![CDATA[novashdima]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=29785</uri>
			</author>
			<updated>2013-03-11T20:48:36Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=70190#p70190</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: CMD/BAT: Работа с переменными]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=70189#p70189" />
			<content type="html"><![CDATA[<p>Я делаю так:<br /></p><div class="codebox"><pre><code>@echo off
setlocal enableextensions enabledelayedexpansion

set sParam1=%~1

if defined sParam1 (
    echo [%sParam1%]
) else (
    echo Usage: %~nx0 ^&lt;Parameter^&gt;
)

endlocal
exit /b 0
</code></pre></div>]]></content>
			<author>
				<name><![CDATA[alexii]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=1844</uri>
			</author>
			<updated>2013-03-11T20:13:38Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=70189#p70189</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: CMD/BAT: Работа с переменными]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=70178#p70178" />
			<content type="html"><![CDATA[<div class="quotebox"><cite>Rom5 пишет:</cite><blockquote><p>Я так понимаю, что &quot;текст_в_переменной&quot; + &quot;.&quot; сравнивается с &quot;.&quot;<br />Если текст в переменной отсутствует, то получается, что сравнивается точка с точкой, т.е. результатом будет Истина.</p><p>Можно по идее попробовать сравнивать и так:<br /></p><div class="codebox"><pre><code>
IF &quot;%1&quot;==&quot;&quot; Goto :empty_param
IF &quot;%%myvar&quot;==&quot;&quot; Goto :empty_myvar</code></pre></div></blockquote></div><p>Пробовал первым способом - неожиданный операнд goto, как-то так<br />вторым тоже пробовал, не получается, пробовал еще с nul сравнивать<br />и пробовал не только &quot;%%myvar&quot;, но и %%myvar %myvar &quot;!myvar!&quot;</p>]]></content>
			<author>
				<name><![CDATA[novashdima]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=29785</uri>
			</author>
			<updated>2013-03-11T17:48:32Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=70178#p70178</id>
		</entry>
</feed>
