求教:win7使用child_process执行cmd命令报错问题
新手。。在运行下面代码的时候出错,查了半天找不到原因,有知道的吗?
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%