1

Тема: JScript: запуск процедуры через интервал с наглядным логом

Запуск процедуры через интервал с наглядным логом.
1. Скрипт работает в консольном cscript, независимо от того, как был запущен. (Переназначение движка с помощью WScript //H: не используется.)
2. С помощью WScript.Echo можно протоколировать любые действия, совершаемые скриптом. Лог будет выводится прямо в консольное окно.
3. Наглядно видно, сколько времени осталось до очередного запуска.
4. При ошибке или сбое скрипта консольное окошко не схлопнется, а будет висеть на экране, давая возможность ознакомиться с ошибкой.

var WshShell = new ActiveXObject("WScript.Shell");
var FSO = new ActiveXObject("Scripting.FileSystemObject");
var version = '1.0';
var timeout = 10;    //интервал проверки (в секундах)

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

// Return time as "mm:ss"
function TimeString(time){
    function format(x){return (x < 10) ? ('0'+x) : x}
    var min = format(Math.floor(time/60));
    var sec = format(time%60);
    return min + ':' + sec;
}

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

do { // Зацикливаем скрипт
    WScript.StdOut.Write('                                                    \r');
    Process();
    sec = timeout;
    do {
        WScript.StdOut.Write('До следующей проверки осталось ' + TimeString(sec) + '\r');
        WScript.Sleep(1000);
        sec--;
    } while (sec > 0);
} while (true);

Автор скрипта — mozers.

Предложения в русском языке начинаются с большой буквы и заканчиваются точкой.
В названии ветки всегда должен быть указан язык программирования или среда исполнения скрипта, если это возможно.