BATCH:如何使用 node.js 按名称关闭正在运行的批处理文件

问题描述

我想知道如何使用子进程或 node.js 中的任何内容关闭正在运行的批处理文件

这是子进程中exec的例子

const { exec,spawn } = require('child_process');
exec('my.bat',(err,stdout,stderr) => {
  if (err) {
    console.error(err);
    return;
  }
  console.log(stdout);
});

解决方法

为了在使用 'child_process' 时终止生成的进程,您需要返回创建的 ChildProcess 引用,在本例中为 exec()

然后您可以使用它自己的 API 终止该进程,即。做childProcess.kill()

完整示例:

const { exec,spawn } = require('child_process');
const childProcess = exec('my.bat',(err,stdout,stderr) => {
  // explicitly kill the process
  childProcess.kill();

  if (err) {
    console.error(err);
    return;
  }
  console.log(stdout);
});

在 node.js 文档中查找更多详细信息

,

您可以检索 bat 文件执行生成的 PID,而不是使用 exec 使用 spawn。调用process.kill(PID)杀死正在运行的bat文件

var spawn = require('child_process').spawn;
var child = spawn('my.bat',{detached: true});
process.kill(child.pid);