求教:win7使用child_process执行cmd命令报错问题
发布于 3年前 作者 node0xcc 1557 次浏览

新手。。在运行下面代码的时候出错,查了半天找不到原因,有知道的吗?

 exec = require('child_process').exec; child = exec('dir *.*',   function (error, stdout, stderr) { console.log('stdout: ' + stdout); console.log('stderr: ' + stderr); if (error !== null) { console.log('exec error: ' + error); } }); 

输出的结果: stdout: stderr: CreateProcessW: ϵͳ�Ҳ���ָ�����ļ��� exec error: Error: Command failed: CreateProcessW: ϵͳ�Ҳ���ָ�����ļ� ��

输出中本来就是乱码。。

5 回复

呃。。。。话说 引用代码的时候,里面怎么换行呢?怎么我一换行就不行了。。

'use strict';
var exec = require('child_process').exec;
var child = exec('dir *.*', function (error, stdout, stderr) {
  console.log('stdout: ' + stdout);
  console.log('stderr: ' + stderr);
  if (error !== null) {
    console.log('exec error: ' + error);
  }
});

运行这个代码没问题

我发现在win7上不行,在xp上行,是否与权限有关?

@node0xcc 可能是跟权限有关吧(或者是其他因素,反正代码是没问题的),我是Win7上运行的

挖坟咯,这个问题与环境变量PATH有关。必须让node.js找到cmd.exe所在的路径,也就是system32目录。否则所有与执行外部程序相关的API都会失败。

set path=%windir%system32;%path%

回到顶部