child_process.exec能执行批处理文件吗?
发布于 12 年前 作者 zhengpan 12674 次浏览 最后一次编辑是 8 年前
代码:  var exec =  = require('child_process').exec;  
exec('aa.bat',function(error,stdout,stderr){  
    		if (error !== null) {  
              console.log('exec error: ' + error);  
          }  
    	}  

我用这个执行批处理文件,报错:exec error: Error: Command failed: execvp(): No such file or directory

如果我想执行上一目录里的bb.bat 是不是这样
exec(’…/bb.bat’,function(error,stdout,stderr){
}

8 回复

可能要用绝对路径吧

应该是cmd aa.bat吧

child_process.exec只执行命令不是文件,bat文件可不是命令,虽然里面的内容是

tankoo 能否再说的详细点,我试了下不行
exec(‘cmd aa.bat’,function(error,stdout,stderr)
exec( ’ '+cmd+‘aa.bat’,function(error,stdout,stderr)
这两种都行不行

@zhengpan 你查一下cmd命令的参数,应该是/a 或者/u的参数吧

@tank00 恩 多谢tank00 找到原因了 我的node版本太旧 还是0.2.4 用0.6.17就好了 呵呵

@zhengpan @tank00 @timesking 可以直接执行代码如下:

var exec = require('child_process').exec;  

exec('test.bat', function(error, stdout, stderr){ 
  if ( !error ) {
    console.log(stdout);
  } else {
    console.log(error);
  }
});

@zhengpan test.bat的代码内容如下:

    echo "hello world";
回到顶部