gpt4 book ai didi

node.js - 使用nodejs执行子进程

转载 作者:太空宇宙 更新时间:2023-11-03 23:40:23 25 4
gpt4 key购买 nike

我正在尝试使用nodejs建立模拟器使用comamnd线iam这样使用

C:\Program Files\Genymobile\Genymotion>player --vm-name "Samsung Galaxy Note 2 - 4.3 - API 18 - 720x1280"

我想在nodejs中执行此操作我的代码

var exec = require('child_process').execFile,
child;

var getVms = function () {

var device = 'Samsung Galaxy Note 2'
var version ='4.3'
//command = process.env.GENY
command = "C:\Program Files\Genymobile\Genymotion"
command += "\\player"
command += " --vm-name"
command += " \"" + device + " - " + version + " - API 18 - 720x1280"+"\"";
console.log(command)
var child = exec(command);
child.stdout.on('data', function(data) {
console.log('stdout:---------------------- ' + data);
});
child.stderr.on('data', function(data) {
console.log('stdout err:---------------------- ' + data);
});
child.on('close', function(code) {
console.log('closing code:---------------------------- ' + code);
});
}
getVms();

但我得到了输出

closing code:---------------------------- -1

没有模拟器。我的代码有什么问题

最佳答案

如果你想执行一个文件,你也可以尝试spawn。您应该知道参数是作为数组传递的。试试这个:

var spawn = require('child_process').spawn;

exports.getVms = function (req, res) {
process.chdir("C:\\Program Files\\Genymobile\\Genymotion");
var execCmd = './player';
var args = ["--vm-name", " \"" + device + " - " + version + " - API 18 - 720x1280"+"\""];
var spw = spawn(execCmd, args);

spw.stdout.on('data', function (data) {
var str = data.toString()
res.send(str);
});

spw.stderr.on('data', function (data) {
console.log('ps stderr: ' + data);
res.send(500);
});

spw.on('close', function (code) {
console.log('process exit code ' + code);
});
}

关于node.js - 使用nodejs执行子进程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24882555/

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