我想使用节点js执行exe。这是命令在Windows命令提示符中的显示方式:
oplrun -D VersionId=3458 -de "output.dat" "Test.mod" "Test.dat"
运行正常,我得到output.dat文件中的输出。现在,我想用nodejs执行相同的操作,并且我使用了execFile。如果我跑,它运行良好:
var execFile = require('child_process').execFile;
execFile('oplrun',['Test.mod','Test.dat'], function(err, data) {
if(err) {
console.log(err)
}
else
console.log(data.toString());
});
但是,如果我想将输出文件或版本作为参数传递,它不会执行,我也没有收到任何错误。这是代码:
var execFile = require('child_process').execFile;
var path ='D:\\IBM\\ILOG\SAMPLE\\output.dat';
execFile('oplrun', ['-de',path],['Test.mod','Test.dat'], function(err, data) {
if(err) {
console.log(err)
}
else
console.log(data.toString());
});
如果需要传递-D VersionId = 1111或-de output.dat之类的内容,如何传递参数。
谢谢你, 阿吉特
答案 0 :(得分:5)
execFile()
的签名显示在Node docs中:
file [,args] [,options] [,callback]
由于您没有提供任何选项,因此您应该传递单个数组,如第一个示例所示。
execFile('oplrun', ['-de', 'output.dat', 'Test.mod','Test.dat'], function(err, data) {
if(err) {
console.log(err)
}
else
console.log(data.toString());
});