我正在尝试在Windows上使用NodeJS生成一个Powershell进程,我可以发送一些命令和输出。我用父节点进程的stdio配置做到了这一点,但是我希望将它分开,并且我无法实现任何正确的工作。
在这段代码中,我希望在psout.txt文件中获得$ PSTableVersion powershell变量的输出,但它永远不会被写入。
简单的代码是:
var
express = require('express'),
fs = require('fs'),
spawn = require("child_process").spawn;
var err = fs.openSync('pserr.txt', 'w');
var out = fs.openSync('psout.txt', 'w');
var writer = fs.createWriteStream(null, {
fd: fs.openSync('psin.txt', 'w')
});
var child = spawn("powershell.exe", ["-Command", "-"], {
detached: true,
stdio: [writer, out, err]
});
writer.write('$PSTableVersion\n');
writer.end();
child.unref();
// just wait
var app = express();
app.listen(3000);
我已尝试使用此节点github问题跟踪器上的代码:https://github.com/joyent/node/issues/8795 似乎调用.NET vs调用本机可执行文件是不同的事情......