<?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=7877&amp;type=atom" />
	<updated>2016-09-01T10:39:54Z</updated>
	<generator>PunBB</generator>
	<id>https://forum.script-coding.com/viewtopic.php?id=7877</id>
		<entry>
			<title type="html"><![CDATA[Re: CMD/BAT: задержка в сотых долях секунды]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=107230#p107230" />
			<content type="html"><![CDATA[<p>Возможно, будет интересно. Задержку в секундах можно сделать также так:<br /></p><div class="codebox"><pre><code>choice /c y /t КОЛИЧЕСТВО_СЕКУНД /d y</code></pre></div>]]></content>
			<author>
				<name><![CDATA[kobakoba2009]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=33619</uri>
			</author>
			<updated>2016-09-01T10:39:54Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=107230#p107230</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: CMD/BAT: задержка в сотых долях секунды]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=68098#p68098" />
			<content type="html"><![CDATA[<p>timeout хорошо подходит, если нужна длительная задержка. Для коротких задержек вполне можно использовать предложенный мною вариант, тем более, что он дает неплохую точность.<br />Однако в моем варианте есть ошибка. Способ устранения см. тут: <a href="http://forum.script-coding.com/viewtopic.php?pid=68097#p68097">http://forum.script-coding.com/viewtopi … 097#p68097</a></p><p>P.S. Исправил код в первом сообщении, так что теперь там ошибки уже нет. Остается лишь проблема перехода на новые сутки.</p><p>P.P.S. <strong>timeout</strong> отсутствует в Windows XP.</p>]]></content>
			<author>
				<name><![CDATA[Arigato]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=29277</uri>
			</author>
			<updated>2013-01-01T07:28:00Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=68098#p68098</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: CMD/BAT: задержка в сотых долях секунды]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=67035#p67035" />
			<content type="html"><![CDATA[<p><strong>timeout</strong> нормально решает задачу. Не знал о нем раньше.</p><p>Задержка на 10 секунд:<br /></p><div class="codebox"><pre><code>timeout /t 10 /nobreak&gt;nul</code></pre></div>]]></content>
			<author>
				<name><![CDATA[Arigato]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=29277</uri>
			</author>
			<updated>2012-12-17T08:04:08Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=67035#p67035</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: CMD/BAT: задержка в сотых долях секунды]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=67034#p67034" />
			<content type="html"><![CDATA[<p>Но это только в секундах<br /></p><div class="quotebox"><blockquote><p>timeout /?</p></blockquote></div><p>Можно вызывать JScript, передавая ему заданное количество миллисекунд. Но и это тоже не точный вариант. </p><p>А к чему такая точность?</p>]]></content>
			<author>
				<name><![CDATA[Rumata]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=24846</uri>
			</author>
			<updated>2012-12-17T07:16:36Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=67034#p67034</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: CMD/BAT: задержка в сотых долях секунды]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=67032#p67032" />
			<content type="html"><![CDATA[<div class="quotebox"><cite>alexii пишет:</cite><blockquote><p>А то, о чём пишете Вы, принято называть пакетными файлами.</p></blockquote></div><p>Пусть будет так.</p><div class="quotebox"><cite>alexii пишет:</cite><blockquote><p>Вот именно, что не типа «WScript.Sleep», а обычная «заморозка». Приведённый код даёт 100% загрузку одного логического юнита ЦП.</p></blockquote></div><p>Есть ли лучший способ относительно точной задержки?</p>]]></content>
			<author>
				<name><![CDATA[Arigato]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=29277</uri>
			</author>
			<updated>2012-12-17T07:01:37Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=67032#p67032</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: CMD/BAT: задержка в сотых долях секунды]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=67025#p67025" />
			<content type="html"><![CDATA[<div class="quotebox"><cite>Arigato пишет:</cite><blockquote><p>в языке сценариев Windows не предусмотрено.</p></blockquote></div><p><strong>Arigato</strong>, WSH — Windows Script Host. А то, о чём пишете Вы, принято называть пакетными файлами.</p><div class="quotebox"><cite>Arigato пишет:</cite><blockquote><p>типа sleep, … Предлагаю более точный способ задержки,</p></blockquote></div><p>Вот именно, что не типа «WScript.Sleep», а обычная «заморозка». Приведённый код даёт 100% загрузку одного логического юнита ЦП.</p>]]></content>
			<author>
				<name><![CDATA[alexii]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=1844</uri>
			</author>
			<updated>2012-12-16T21:46:02Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=67025#p67025</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[CMD/BAT: задержка в сотых долях секунды]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=67015#p67015" />
			<content type="html"><![CDATA[<p>Стандартной команды задержки, типа sleep, в языке сценариев Windows не предусмотрено. Есть множество различных извращенных способов получить хоть какую-то задержку, например, через ping.</p><p>Предлагаю более точный способ задержки, использующий счетчик времени %time%, который позволяет производить замеры времени с точностью до сотых долей секунды.</p><p>Код, реализующий задержку в 10 секунд:</p><div class="codebox"><pre><code>@ echo off

:: Задержка в 10 секунд
echo %time%
echo Wait 10 seconds...
call :sleep 1000
echo %time%
pause
exit /b

:sleep
:: Относительно точная пауза в сотых доля секунды
setlocal
call :gettick
set /a finish=%errorlevel%+%1
if %finish% geq 8640000 set finish=0
:slplabel
call :gettick
if %errorlevel% lss %finish% goto slplabel
endlocal &amp; exit /b

:gettick
:: Количество сотых долей секунды, прошедших с начала дня
setlocal
set t=%time: =0%
set /a tick=1%t:~9,2%-100+(1%t:~6,2%-100)*100+(1%t:~3,2%-100)*6000+(1%t:~0,2%-100)*360000
endlocal &amp; exit /b %tick%</code></pre></div><br /><p>Задержка реализована в виде подпрограммы :sleep, получающей единственный параметр - продолжительность задержки в сотых долях секунды. Точность задержки не идеальная, но весьма неплохая. Единственны косяк может возникнуть в момент перехода времени с 23:59 на 00:00.</p>]]></content>
			<author>
				<name><![CDATA[Arigato]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=29277</uri>
			</author>
			<updated>2012-12-16T16:10:33Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=67015#p67015</id>
		</entry>
</feed>
