node.js在控制台上获得批量输出

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了node.js在控制台上获得批量输出相关的知识,希望对你有一定的参考价值。

我在下面的脚本中通过node.js使用远程Windows批处理文件。

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:angularappserver	ry>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。如果我错过了什么,请建议。谢谢

答案

node.js部分正在工作,它在控制台中显示调用命令(PsExec64)的输出,这似乎更像是一个系统编程问题。无论如何,读这个(https://docs.microsoft.com/es-es/sysinternals/downloads/psexec)我会添加-i到PsExec64选项。 (免责声明:我现在无法测试)

以上是关于node.js在控制台上获得批量输出的主要内容,如果未能解决你的问题,请参考以下文章

Winston 3.0 在控制台上为整个输出着色

node.js教程基础:第一个node.js程序

Node.js学习2~在控制台命令行js文件和web服务中分别实现Hello World

如何使用 ANSI Escape 代码在控制台上输出彩色文本

为什么此代码的输出未出现在控制台上?

在 Firebase 控制台上查看发送的消息