Node.JS:execFile ENOENT

时间:2016-06-19 00:33:09

标签: javascript node.js child-process

我尝试执行*.exe文件,但得到了:

exec error: { Error: spawn ${__dirname}/install.exe ENOENT

代码:

var execFile = require('child_process').execFile
execFile('${__dirname}/install.exe', function(error, stderr) {
   console.log('stderr: ', __dirname);
   if (error !== null) {
       console.log('exec error: ', error);
   }
  });

还尝试了:'${__dirname}\install.exe''./install.exe''D:\install.exe'

1 个答案:

答案 0 :(得分:3)

@FelixKling有正确的建议;除非您使用反向标记创建字符串,否则变量不起作用。此外,使用path模块解析文件路径是个好主意:

var path = require('path');
var execFile = require('child_process').execFile;

var exePath = path.resolve(__dirname, './install.exe');
execFile(exePath, function(error, stderr) {
   console.log('stderr: ', __dirname);
   if (error !== null) {
       console.log('exec error: ', error);
   }
});

修改

这是关于ENOENT的原始问题。对于您的第二个UNKNOWN错误,原因可能会有所不同。听起来这可能是一个权限问题,因为可执行文件需要升级到管理员权限。