3

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

谢谢你,阿吉斯

4

1 回答 1

6

的签名execFile()Node 文档中显示为:

文件[, args][, 选项][, 回调]

由于您没有提供任何选项,因此您应该传递一个数组,就像在您的第一个示例中一样。

execFile('oplrun', ['-de', 'output.dat', 'Test.mod','Test.dat'], function(err, data) {
        if(err) {
            console.log(err)
        } 
        else 
        console.log(data.toString());                       
    }); 
于 2016-04-06T11:15:07.673 回答