Тема: 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.
В названии ветки всегда должен быть указан язык программирования или среда исполнения скрипта, если это возможно.