CNode

求教:win7使用child_process执行cmd命令报错问题

Nnode0xcc发布于14 年前最后回复13 年前5 回复11408 浏览0 收藏

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

 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)

W
wenbob#1·13 年前

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

set path=%windir%system32;%path%

N
node0xcc#2·14 年前

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

L
leizongmin#3·14 年前
'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);
  }
});

运行这个代码没问题

N
node0xcc#4·14 年前
引用 leizongmin运行这个代码没问题

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

L
leizongmin#5·14 年前
引用 leizongmin运行这个代码没问题

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

参与回复
登录后即可参与回复。登录