Node.JS:execFile ENOENT

Src*_*Src 0 javascript child-process node.js

我尝试执行*.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);
   }
  });
Run Code Online (Sandbox Code Playgroud)

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

Jac*_*cob 5

@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);
   }
});
Run Code Online (Sandbox Code Playgroud)

编辑

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