Как получить вывод CMD в файле HTA в JavaScript - PullRequest
0 голосов
/ 13 октября 2018

Я запускаю некоторые команды CMD в своем файле HTA, например

<script>
var WShell = new ActiveXObject('WScript.Shell');
WShell.run('cmd /c the_first_command');

WShell.run('cmd /c the_second_command');
</script>

, и для выполнения первой команды может потребоваться время, например несколько секунд

Мне нужно выполнитьследующая команда только после вывода CMD говорит, что предыдущая задача полностью выполнена.

Как я понимаю, после первой команды я могу запустить интервал, например

var timer = setInterval(function() {

    var cmd_output_of_the_first_command = ???;

    if(~cmd_output_of_the_first_command.indexOf('A text about the task is completed')) {
        clearInterval(timer);

        WShell.run('cmd /c the_second_command');
    }

}, 500);

Итак, вопрос в том, как получить вывод CMD?

1 Ответ

0 голосов
/ 13 октября 2018

Хорошо, я нашел ответ:

var WShell = new ActiveXObject('WScript.Shell');
var WShellExec = WShell.Exec('cmd /c the_first_command');

var WShellResult = WShellExec.StdOut.ReadAll();
if(~WShellResult.indexOf('A text about the task is completed')) {
    WShell.Run('cmd /c the_second_command');
}

Нет необходимости в любом интервале

ИЛИ

просто выполните CMD синхронно один за другим без необходимостипроверить вывод CMD

WShell.Run('cmd /c the_first_command', 0, true);
WShell.Run('cmd /c the_second_command', 0, true);
...