<?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=18455&amp;type=atom" />
	<updated>2025-06-11T03:28:05Z</updated>
	<generator>PunBB</generator>
	<id>https://forum.script-coding.com/viewtopic.php?id=18455</id>
		<entry>
			<title type="html"><![CDATA[Re: CMD/BAT: Корректно работает только при повторном запуске, баг?]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=162508#p162508" />
			<content type="html"><![CDATA[<p>Не тестировал, но думаю, здесь по аналогии с предыдущим примером.</p>]]></content>
			<author>
				<name><![CDATA[teadrinker]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=24515</uri>
			</author>
			<updated>2025-06-11T03:28:05Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=162508#p162508</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: CMD/BAT: Корректно работает только при повторном запуске, баг?]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=162507#p162507" />
			<content type="html"><![CDATA[<p>Спасибо, осознал. Вопрос номер 2.</p><p>bat_1.cmd<br /></p><div class="codebox"><pre><code>@echo off

set attr=%1

call :test %attr%
if %ERRORLEVEL% equ 1 (
	echo ERROR
) else (
	echo OK
)

exit /b

:test
	if %1 equ 10 exit /b 0
	exit /b 1
	</code></pre></div><p>bat2.cmd<br /></p><div class="codebox"><pre><code>@echo off

set attr=%1

if defined attr (
	call :test %attr%
	if %ERRORLEVEL% equ 1 (
		echo ERROR
	) else (
		echo OK
	)
)

exit /b

:test
	if %1 equ 10 exit /b 0
	exit /b 1
	</code></pre></div><p>Получается в таком виде вложенность не может работать?<br /></p><div class="quotebox"><blockquote><p>bat_1.cmd 10 :: OK<br />bat_1.cmd 11 :: ERROR<br />bat_2.cmd 10 :: OK<br />bat_2.cmd 11 :: OK</p></blockquote></div>]]></content>
			<author>
				<name><![CDATA[DnsIs]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=26282</uri>
			</author>
			<updated>2025-06-09T04:41:30Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=162507#p162507</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: CMD/BAT: Корректно работает только при повторном запуске, баг?]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=162504#p162504" />
			<content type="html"><![CDATA[<p><strong>teadrinker</strong> прав. Это же азы командных файлов. В скобках используйте отложенное раскрытие переменных:<br /></p><div class="codebox"><pre><code>	echo !attr!</code></pre></div><p>или<br /></p><div class="codebox"><pre><code>	calll echo %%attr%%</code></pre></div>]]></content>
			<author>
				<name><![CDATA[Мальчик-гей]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=30832</uri>
			</author>
			<updated>2025-06-03T04:24:43Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=162504#p162504</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: CMD/BAT: Корректно работает только при повторном запуске, баг?]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=162501#p162501" />
			<content type="html"><![CDATA[<p>Скорее всего причина в том, что cmd подставляет переменные %myvar% при первоначальном парсинге, до запуска скрипта. Переменные подставляются построчно; то, что внутри блока (), считается одной строкой.</p>]]></content>
			<author>
				<name><![CDATA[teadrinker]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=24515</uri>
			</author>
			<updated>2025-06-02T16:30:45Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=162501#p162501</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[CMD/BAT: Корректно работает только при повторном запуске, баг?]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=162500#p162500" />
			<content type="html"><![CDATA[<p>Почему такой код срабатывает только со второго раза?</p><p>Файл wat.cmd<br /></p><div class="codebox"><pre><code>@echo off
if not &quot;%1&quot;==&quot;&quot; (
	set attr=%~a1
	echo %attr%
)
</code></pre></div><p>:<br /></p><div class="quotebox"><blockquote><p>C:\#_\TEST&gt;wat.cmd wat.cmd<br />Режим вывода команд на экран (ECHO) отключен.</p><p>C:\#_\TEST&gt;wat.cmd wat.cmd<br />--a--------</p></blockquote></div><p>Но вот так работает с первого:<br /></p><div class="codebox"><pre><code>@echo off
if not &quot;%1&quot;==&quot;&quot; (
	echo %~a1
)
</code></pre></div>]]></content>
			<author>
				<name><![CDATA[DnsIs]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=26282</uri>
			</author>
			<updated>2025-06-02T10:59:18Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=162500#p162500</id>
		</entry>
</feed>
