我在这里看到了类似的问题。
其中一个问题有一个被接受的答案是
var spawn = require("child_process").spawn,child;
child = spawn("powershell.exe",["c:\\temp\\helloworld.ps1"]);
child.stdout.on("data",function(data){
console.log("Powershell Data: " + data);
});
child.stderr.on("data",function(data){
console.log("Powershell Errors: " + data);
});
child.on("exit",function(){
console.log("Powershell Script finished");
});
child.stdin.end(); //end input
我使用的是Ubuntu,所以我把它改成了:
var spawn = require("child_process").spawn,child;
child = spawn("/usr/bin/pwsh",["/srv/webroot/pauseRS.ps1"]);
child.stdout.on("data",function(data){
console.log("Powershell Data: " + data);
});
child.stderr.on("data",function(data){
console.log("Powershell Errors: " + data);
});
child.on("exit",function(){
console.log("Powershell Script finished");
});
child.stdin.end(); //end input
在运行node包时,我并没有收到任何错误提示,但似乎也没有运行powershell脚本。控制台中没有记录任何内容。
该powershell脚本只是运行一个Web请求。当我单独运行powershell脚本时,它能正常运行并按预期工作。尝试使用node调用powershell脚本不会产生任何错误,并且也没有产生任何结果。
Node版本为12.21.0
node
进程退出了吗?顺便说一句:看起来这里不需要child.stdin.end();
,因为你没有以编程方式提供标准输入。 - mklement0