Существует ли способ выполнить команду командной строки от JScript (не JavaScript) в Windows Scripting Host (WSH) cscript.exe?

Для обработки сессии правильно смотрите на http://php.net/manual/en/session.configuration.php .

Там Вы найдете эти переменные:

  • сессия gc_probability
  • сессия gc_divisor
  • сессия gc_maxlifetime

Они управляют вероятностью сборщика "мусора" (GC) выполнения с каждым запросом страницы.

Вы могли установить тех, которые имеют ini_set () в начале Вашего сценария или .htaccess файла, таким образом, Вы получаете уверенность в некоторой степени, они будут удалены когда-то.

6
задан detj 17 September 2009 в 23:32
поделиться

3 ответа

Спасибо за помощь, это был мой первый пост, и stackoverflow потрясающий! Кроме того, я придумал другой способ сделать это, используя метод oShell.SendKeys () .
Вот как:

var oShell = WScript.CreateObject("WScript.Shell");
oShell.SendKeys("cls{enter}timeout /t 10{enter}");

Таким образом, вы можете запускать почти каждую команду dos без создания нового процесса или окна.

РЕДАКТИРОВАТЬ: Хотя кажется, что это решает проблему, этот код не очень надежен. См. Комментарии ниже

1
ответ дан 10 December 2019 в 02:50
поделиться

Вы можете выполнять команды DOS, используя метод WshShell.Run :

var oShell = WScript.CreateObject("WScript.Shell");
oShell.Run("timeout /t 10", 1 /* SW_SHOWNORMAL */, true /* bWaitOnReturn */);


Если вы В частности, необходимо приостановить выполнение скрипта до тех пор, пока не будет нажата клавиша или пока не истечет время ожидания, это можно сделать с помощью WshShell. Метод Popup (диалоговое окно с параметром тайм-аута):

var oShell = WScript.CreateObject("WScript.Shell");
oShell.Popup("Click OK to continue.", 10);

Однако этот метод также отображает окно сообщения при запуске под cscript.

Другой возможный подход описан в этой статье: Как можно Я приостанавливаю скрипт, а затем возобновляю его, когда пользователь нажимает клавишу на клавиатуре? Короче говоря, вы можете использовать свойство WScript.StdIn для чтения непосредственно из входного потока и, таким образом, ждать ввода . Однако чтение из входного потока не поддерживает тайм-аут и возвращается только после нажатия клавиши ENTER (не любой клавиши). В любом случае, вот пример, на всякий случай:

WScript.Echo("Press the ENTER key to continue...");

while (! WScript.StdIn.AtEndOfLine) {
   WScript.StdIn.Read(1);
}
8
ответ дан 10 December 2019 в 02:50
поделиться

Да, с объектом WScript.Shell .

См. Документы и примеры

0
ответ дан 10 December 2019 в 02:50
поделиться
Другие вопросы по тегам:

Похожие вопросы: