使用 node.js 执行一个 exe 文件

IT技术 javascript node.js
2021-01-16 23:22:42

我不知道如何exenode.js. 这是我正在使用的代码。它不工作,不打印任何东西。有没有可能exe使用命令行执行文件的方法?

var fun = function() {
  console.log("rrrr");
  exec('CALL hai.exe', function(err, data) {

    console.log(err)
    console.log(data.toString());
  });
}
fun();
3个回答

您可以在 node.js 中尝试子进程module的 execFile 函数

参考:http : //nodejs.org/api/child_process.html#child_process_child_process_execfile_file_args_options_callback

您的代码应该类似于:

var exec = require('child_process').execFile;

var fun =function(){
   console.log("fun() start");
   exec('HelloJithin.exe', function(err, data) {  
        console.log(err)
        console.log(data.toString());                       
    });  
}
fun();
如何通过使用文件夹结构 exec('C:\Program Files\ImageMagick-6.9.1-Q16-HDRI/convert.exe convert -version', function(){ 在某些文件夹中运行 exe 就像我想运行 imagemagik 命令一样})
2021-03-25 23:22:42
要向命令添加两个参数,例如“/t”和“600”,请添加 exec('HelloJithin.exe', ['/t', '600'], function(err, data) { console.log(err) console.log(data.toString()); });
2021-03-30 23:22:42

如果exe您要执行的 是在其他目录中,并且您exe对它所在的文件夹有一些依赖性,请尝试cwd在选项中设置参数

var exec = require('child_process').execFile;
/**
 * Function to execute exe
 * @param {string} fileName The name of the executable file to run.
 * @param {string[]} params List of string arguments.
 * @param {string} path Current working directory of the child process.
 */
function execute(fileName, params, path) {
    let promise = new Promise((resolve, reject) => {
        exec(fileName, params, { cwd: path }, (err, data) => {
            if (err) reject(err);
            else resolve(data);
        });

    });
    return promise;
}

文档

你有没有想过在这个过程中使用批处理文件?我的意思是使用 node.js 启动一个 .bat 文件,它会同时启动一个 .exe 文件?

只是使用顶部的答案我得到了这个:

  1. 在 exe 文件的目录中创建一个 .bat 文件

  2. 输入bat文件 START <full file name like E:\\Your folder\\Your file.exe>

  3. 输入你的 .js 文件: const shell = require('shelljs') shell.exec('E:\\Your folder\\Your bat file.bat')