鍍金池/ 問答/HTML/ node child_process.exec 打開一個(gè)exe,如何立刻得知命令

node child_process.exec 打開一個(gè)exe,如何立刻得知命令結(jié)果而不是等該exe退出

如題,用child_process.exec打開一個(gè)exe程序,打開之后這個(gè)node程序就沒用了,想立刻關(guān)閉node程序,但exec的回調(diào)函數(shù)又必須等待exe程序退出的返回值,有什么辦法可以實(shí)現(xiàn)VC中的ShellExecute函數(shù)的效果嗎?謝謝。

回答
編輯回答
涼汐

spawn,參見官方文檔。例如:

要被js執(zhí)行的程序源文件:

// main.cc
#include <iostream>
#include <fstream>
#include <windows.h>

using namespace std;

int main() {
  ofstream fs;
  Sleep(5000);
  fs.open("out.txt");
  cout << "Rua!" << endl;
  fs << "Rua!" << endl;
  fs.close();
  return 0;                                                        }

還有js文件:

// test.js
const { spawn } = require('child_process')

let subprocess = spawn('main.exe', [], {
  detached: true,
  stdio: 'inherit' // ['ignore', process.stdout, process.stderr]
})

subprocess.unref()
console.log('Bye')
process.exit()

不過暫時(shí)沒找到保留控制臺(tái)輸出的方法,當(dāng)然你也可以改為執(zhí)行一個(gè)bat,在bat里開新窗口

2017年4月20日 09:01