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' '${__dirname}\install.exe' './install.exe''D:\install.exe'

@FelixKling有正确的build议; variables不起作用,除非你创build你的string与back-ticks。 此外,使用path模块来parsing文件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错误,原因可能会有所不同。 这听起来可能是一个权限问题,因为可执行文件需要提升到pipe理员权限。