如何在nodejs的单独线程上执行dos命令

How to execute dos command on separate thread in nodejs?

本文关键字:执行 dos 命令 线程 单独 nodejs      更新时间:2023-09-26

我使用

var version = shell.exec('D:''prompt.bat', {silent:false}).output;

npm运行.bat文件的Shelljs模块

这个。bat文件打开iexplorer .exe, ie浏览器打开

问题是它在单线程上运行,所以除非IE没有关闭,否则我的服务器正在等待,而不是处理任何进一步的请求,

所以任何人都可以建议我如何在单独的线程上运行DOS命令,以便它不影响我的服务器。

提前感谢。:)

您确实可以使用不同的东西,如child_processexec来创建异步进程,但是node.js仍然不会退出,直到子进程完成或超时。虽然它会继续执行。

示例(源):

var exec = require('exec');
exec(['D:''prompt.bat'], function(err, out, code) {
  if (err instanceof Error)
    throw err;
  process.stderr.write(err);
  process.stdout.write(out);
  process.exit(code);
});

另一种更简单的方法:你可以尝试运行异步CMD代码,这是解决问题,而不是在Node.js,但在脚本。

例如:

var version = shell.exec('start D:''prompt.bat', {silent:false}).output;

或者您可以在prompt.bat中添加命令start

我在自己的评论中找到了第二个问题的答案:

代替c:'…用c:/就是这样。:)