我正在使用
var version = shell.exec('D:\\prompt.bat', {silent:false}).output;
npm的Shelljs模块运行.bat文件
此 .bat 文件打开 iexplore.exe 并打开 Internet Explorer
但是 问题是它在单线程上运行,所以除非 IE 没有关闭,否则我的服务器正在等待并且不处理任何进一步的请求,
所以任何人都可以建议我如何在单独的线程上运行 DOS 命令,这样它就不会影响我的服务器。
提前致谢。 :)
最佳答案
你确实可以使用不同的东西,比如 child_process或 exec创建异步进程,但 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/