Сначала вам нужно создать объект оболочки:
var shell = WScript.CreateObject("WScript.Shell");
Тогда есть два метода на выбор. Простой способ использует функцию Shell Run и отправляет вывод команды в файл, который вы впоследствии прочитаете:
var errorCode = shell.Run("cmd /c dir c:\\ > tmp.txt", 1, true);
// (1 -> Display window, true -> wait for command to finish)
В качестве альтернативы, также возможно захватить вывод команды напрямую, используя функцию Shell Exec:
var cmdRun = shell.Exec("cmd /c dir c:\\");
while (cmdRun.Status == 0) // wait for the command to finish
{
WScript.Sleep(100);
}
Exec возвращает объект, представляющий процесс, в этом случае мы получаем доступ к стандартному выводу как объект TextStream.
var output = cmdRun.StdOut.ReadAll();
Можно ожидать, что вы сможете взаимодействовать с новым процессом, используя возвращаемый объект и его стандартные каналы ввода / вывода, но, по моему мнению, это не работает Например, я не могу найти способ чтения стандартного вывода, который не блокирует сценарий, пока команда не завершит выполнение.