我正在通过以下脚本中的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:\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。如果我缺少什么,请提出建议。 谢谢
答案 0 :(得分:0)
node.js部分正在运行,它在控制台中显示了被调用命令(PsExec64)的输出,似乎更多是系统编程问题。无论如何,阅读此(https://docs.microsoft.com/es-es/sysinternals/downloads/psexec),我将-i添加到PsExec64选项。 (免责声明:我现在无法对其进行测试)