Node.JS:execFile ENOENT

Node.JS: execFile ENOENT

我尝试执行 *.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'

@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 的错误,原因可能各不相同。听起来这可能是一个权限问题,因为可执行文件需要提升到管理员权限。