在nodejs中执行带参数的exe

时间:2016-04-06 11:09:11

标签: node.js exe spawn execfile

我想使用节点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之类的内容,如何传递参数。

谢谢你, 阿吉特

1 个答案:

答案 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());                       
    });