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在控制台上获得批量输出的主要内容,如果未能解决你的问题,请参考以下文章
Node.js学习2~在控制台命令行js文件和web服务中分别实现Hello World