子进程功能不会被正确触发

时间:2019-04-29 07:07:00

标签: node.js child-process

我正在使用Electron开发Node.js应用程序。我需要访问某个目录中的可执行文件并确定其输出。可执行文件是一个简单的控制台应用程序。我阅读了Child Process上的文档,并尝试使用execFile。但是,回调函数似乎没有执行。

这是我的代码:

var exec = require('child_process').execFile

exec('E:/SteamLibrary/steamapps/common/GarrysMod/bin/gmad.exe', [], function(err, data) { 
  console.log(err);
  console.log(data); 
});

我该如何解决这个问题?

1 个答案:

答案 0 :(得分:1)

您正在使用Windows,因此execFile()无法正常工作。它在文档上有说明。.为了方便起见,我使用文档示例here进行了小更改。

const { spawn } = require('child_process');
const bat = spawn('C/steam/steam.exe');

bat.stdout.on('data', (data) => {
  console.log(data.toString());
});

bat.stderr.on('data', (data) => {
  console.log(data.toString());
});

bat.on('exit', (code) => {
  console.log(`Child exited with code ${code}`);
});