<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
	<channel>
		<title><![CDATA[Серый форум &mdash; JScript: запуск процедуры через интервал с наглядным логом]]></title>
		<link>https://forum.script-coding.com/viewtopic.php?id=3743</link>
		<atom:link href="https://forum.script-coding.com/extern.php?action=feed&amp;tid=3743&amp;type=rss" rel="self" type="application/rss+xml" />
		<description><![CDATA[Недавние сообщения в теме «JScript: запуск процедуры через интервал с наглядным логом».]]></description>
		<lastBuildDate>Wed, 14 Oct 2009 08:37:00 +0000</lastBuildDate>
		<generator>PunBB</generator>
		<item>
			<title><![CDATA[JScript: запуск процедуры через интервал с наглядным логом]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=29198#p29198</link>
			<description><![CDATA[<p>Запуск процедуры через интервал с наглядным логом.<br />1. Скрипт работает в консольном cscript, независимо от того, как был запущен. (Переназначение движка с помощью WScript //H: не используется.)<br />2. С помощью WScript.Echo можно протоколировать любые действия, совершаемые скриптом. Лог будет выводится прямо в консольное окно.<br />3. Наглядно видно, сколько времени осталось до очередного запуска.<br />4. При ошибке или сбое скрипта консольное окошко не схлопнется, а будет висеть на экране, давая возможность ознакомиться с ошибкой.<br /></p><div class="codebox"><pre><code>var WshShell = new ActiveXObject(&quot;WScript.Shell&quot;);
var FSO = new ActiveXObject(&quot;Scripting.FileSystemObject&quot;);
var version = &#039;1.0&#039;;
var timeout = 10;    //интервал проверки (в секундах)

// Основная процедура (вставляем в нее все что нужно)
function Process(){
    WScript.Echo(&#039;Process...&#039;);
}

// Return time as &quot;mm:ss&quot;
function TimeString(time){
    function format(x){return (x &lt; 10) ? (&#039;0&#039;+x) : x}
    var min = format(Math.floor(time/60));
    var sec = format(time%60);
    return min + &#039;:&#039; + sec;
}

// Запуск скрипта
var sec;
if (WScript.Arguments.length === 0){
    var title = &#039;Monitor ver.&#039; + version;
    WshShell.Run(&#039;%ComSpec% /f:on /t:1b /k title=&#039; + title + &#039; &amp; cscript /nologo &quot;&#039; + WScript.ScriptFullName + &#039;&quot; ready&#039;);
    WScript.Quit();
}

do { // Зацикливаем скрипт
    WScript.StdOut.Write(&#039;                                                    \r&#039;);
    Process();
    sec = timeout;
    do {
        WScript.StdOut.Write(&#039;До следующей проверки осталось &#039; + TimeString(sec) + &#039;\r&#039;);
        WScript.Sleep(1000);
        sec--;
    } while (sec &gt; 0);
} while (true);</code></pre></div><p>Автор скрипта — <strong>mozers</strong>.</p>]]></description>
			<author><![CDATA[null@example.com (The gray Cardinal)]]></author>
			<pubDate>Wed, 14 Oct 2009 08:37:00 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=29198#p29198</guid>
		</item>
	</channel>
</rss>
