javascript - 如何在nodejs中的单独线程上执行dos命令?

标签 javascript multithreading node.js npm dos

我正在使用

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

npm的Shelljs模块运行.bat文件

此 .bat 文件打开 iexplore.exe 并打开 Internet Explorer

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

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

提前致谢。 :)

最佳答案

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

示例(source):

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

关于javascript - 如何在nodejs中的单独线程上执行dos命令?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25428491/

相关文章:

node.js - Socket.IO 身份验证逻辑似乎有效,但无论如何都允许未经身份验证的套接字

node.js - 我的 Node 脚本如何检测它是否被 `require` 调用?

javascript - 部分更新 mongo 对象

javascript - 循环确定 selectedIndex 不起作用?

multithreading - Javafx 几个 GUI 线程 - 进度指示器

multithreading - 每个请求 3 个线程

Firefox 的 Javascript keydown : checking both for arrows and the minus sign, 解决方法

javascript - 如何在没有时间的情况下获取当前日期?

c++ - C++ 中 vector vector 切片上的多线程

node.js - typescript 足够健壮吗?