我正在使用
var version = shell.exec('D:\\prompt.bat', {silent:false}).output;
npm的Shelljs模块运行.bat文件
此.bat文件打开iexplore.exe并打开Internet Explorer
BUT 问题是它运行在单个线程上,所以直到IE除非IE关闭我的服务器是waitng而不处理任何进一步的请求,
所以任何人都可以建议我如何在单独的线程上运行DOS命令,这样它就不会影响我的服务器。
提前谢谢。 :)答案 0 :(得分:1)
您确实可以使用类似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;
或者您可以在start
内添加命令prompt.bat
。
答案 1 :(得分:0)
我自己在评论中找到了第二个问题的答案:
代替c:\ ......使用c:/就是它。 :)