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