node.js получает пакетный вывод на консоль - PullRequest
0 голосов
/ 25 апреля 2019

Я использую удаленный пакетный файл Windows через node.js в приведенном ниже сценарии.

const util = require('util');
const exec = util.promisify(require('child_process').exec);

async function lsExample() {  
  const { stdout, stderr } = await exec('PsExec64 \\\\xxx.xx.xx.xx -u username -p password cmd /c "C:\\work\\test"');
  console.log('stdout:', stdout);
  console.log('stder:', stderr);
}
lsExample();

Работает в фоновом режиме и успешно завершается. Проблема в том, что я не получаю вывод командного файла "test.bat" в консоли. Это просто дает результат ниже.

D:\angular\app\server\try>node try.js
stdout:
PsExec v2.2 - Execute processes remotely
Copyright (C) 2001-2016 Mark Russinovich
Sysinternals - www.sysinternals.com



Starting cmd on xxx.xx.xx.xx... xxx.xx.xx.xx...
cmd exited on xxx.xx.xx.xx with error code 0.

Нет выводится на локальной консоли. Пакетный файл очень прост,

echo batch start >output.log
FOR /L %%x in (1,1,10) DO echo %%x Hello Testing>>output.log

Я также хочу прочитать output.log. Пожалуйста, предложите, если я что-то упустил. Спасибо

1 Ответ

0 голосов
/ 25 апреля 2019

Работает узел node.js, он отображает вывод вызванной команды (PsExec64) в консоли, похоже, это проблема системного программирования. В любом случае, читая это (https://docs.microsoft.com/es-es/sysinternals/downloads/psexec), я бы добавил -i к параметрам PsExec64. (Отказ от ответственности: я не могу проверить это прямо сейчас)

...