пятница, 6 февраля 2009 г.

how do i force windows script to run in console

Если нам надо выводить большие простыни текста, скрипт надо гонять в консоли. Но по умолчанию *.js запускается в wscript, а не в cscript.

Тут можно сделать так:



if(WScript.FullName.match(new RegExp('wscript', 'i'))) {
// мы запускаемся не в консоли
var sh = new ActiveXObject('WScript.Shell');
// скопируем коммандную строку, добавим установку ждать
// нажатия клавиши после работы, чтобы окно не сразу
// закрывалось
var cmdLine = 'cscript /nologo ' + WScript.ScriptFullName + ' /pause';
sh.Run(cmdLine);
return;
}




Факты, которых я не знал:
- out.Write('\x1b[2J') очищает экран терминала, но только если гонять cscript в rxvt или каком-нибудь другом ANSI-enabled терминале;
- консоль Windows 2000/XP не понимает ANSI escape sequences;

Комментариев нет:

Отправить комментарий