gpt4 book ai didi

node.js - 如何等待 powershell 命令在 node-powershell 中运行后再继续?

转载 作者:太空宇宙 更新时间:2023-11-04 01:25:57 28 4
gpt4 key购买 nike

我正在使用 javascript 为 Atom 制作一个包。我想在程序继续运行之前使用 node-powershell 解释 python 代码文件。如何确保所有 powershell 命令在继续之前都已完成?

我尝试过使用 ps.dispose(),但即使这是在 powershell 命令结束之前运行的。

function run_powershell(callback){

console.log("powershell started");
let ps = new shell({
executionPolicy: 'Bypass',
noProfile: true
});

ps.addCommand('cd '+ __dirname)
ps.addCommand('python python_output.py')
ps.addCommand('exit')
ps.invoke()
.then(output => {
console.log(output);
})
.catch(err => {
console.log(err);
});
ps.dispose()
.then(function(){
console.log("inside dispose");
callback();
});
console.log("powershell has ended");
}

我得到的输出是:“powershell 已启动”“powershell 结束”“内部处置”

我想要得到的输出是:“powershell 已启动”“内部处置”“powershell 结束”

最佳答案

You might want to integrate Start-Sleep,即使只有几毫秒也可能产生影响。

为了节省您一些时间,我将其集成到代码中我认为合适的位置:

console.log("powershell started");
let ps = new shell({
executionPolicy: 'Bypass',
noProfile: true
});

ps.addCommand('cd '+ __dirname)
ps.addCommand('python python_output.py')
ps.addCommand('exit')
ps.invoke()
.then(output => {
console.log(output);
})
.catch(err => {
console.log(err);
});
ps.dispose()
.then(function(){
console.log("inside dispose");
Start-Sleep -Milliseconds 10
callback();
});
console.log("powershell has ended");
}

希望这有帮助!

关于node.js - 如何等待 powershell 命令在 node-powershell 中运行后再继续?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57505466/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com