前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >windows下node.js调用bat

windows下node.js调用bat

作者头像
meteoric
发布2018-11-16 18:05:59
5.2K0
发布2018-11-16 18:05:59
举报
文章被收录于专栏:游戏杂谈游戏杂谈

node.js调用bat需要用到Child Processes模块

因为bat是文件,所以需要使用execFile方法

如果指定了cwd,它会切换bat执行的目录,类似cd的功能,如果未指定默认为当前调用程序的目录。如果bat有输出错误,例如创建指定的文件/目录已经存在时,会返回一个错误信息时,调用bat会得到一个相关的错误信息:Error {killed: false, code: 1, signal: null}

代码语言:javascript
复制
process.execFile(url, [1, 2], {cwd:'D:/'}, function(error, stdout, stderr) {
    console.log(error);
    console.log(stdout);
    alert(1);
});

如果只指定了盘符,而非一个可访问的路径时,会得到Error: spawn EBADF

代码语言:javascript
复制
process.execFile(url, [1, 2], {cwd:'D'}, function(error, stdout, stderr) {
    console.log(error);
    console.log(stdout);
    alert(1);
});

输出:Error {code: "EBADF", errno: "EBADF", syscall: "spawn"}

二种方式可以得到调用bat的返回结果,一种是直接回调函数里获取stdout的值,还有一种是监听子进程的data事件

代码语言:javascript
复制
var child_proc = process.execFile(url, [1, 2], {cwd:dirName}, function(error, stdout, stderr) {
    console.log(error);
    console.log(stdout);
});

child_proc.stdout.on('data', function(data) {
  console.log(data);
});

假设bat的文件内容是创建三个目录,其中二个目录是通过参数传递进去的(上面代码中的数组[1, 2],其中1、2就是参数)

代码语言:javascript
复制
@echo off

echo hahaniu~~~

mkdir %1
mkdir %2
mkdir aa

执行上面的代码后,会在指定的目录下(也就是代码中cwd参数的值)创建相应的目录,其中stdout将得到“hahaniu~~~”的输出

除了execFile方法外,还有exec方法亦能达到目的。用exec分解调用的文件功能,如下面的示例(创建一个目录)

代码语言:javascript
复制
process.exec("mkdir " + (new Date().getTime()), function(error, stdout, stderr) {
    
});

如果node.js想查询注册表或者其它信息,可以直接像在dos下输入命令一下,例如查询winrar安装目录

代码语言:javascript
复制
process.exec("reg query HKEY_CLASSES_ROOT\\WinRAR\\shell\\open\\command /ve", function(error, stdout, stderr) {
    var path = stdout.match(/(\"[^\"]+\")/)[1]

    console.log(path);
});

自此,以前用hta的工具都可以用node-webkit替代了

【参考资料】

http://nodejs.org/api/child_process.html

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2014-01-17 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档