在Windows CMD中使用dir
命令将导致以下输出:
Verzeichnis von D:\workspace\filewalker 22.12.2013 17:27 <DIR> . 22.12.2013 17:27 <DIR> .. 22.12.2013 17:48 392 test.js 22.12.2013 17:23 0 testöäüÄÖÜ.txt 22.12.2013 17:27 <DIR> testÖÄÜöüäß 2 Datei(en), 392 Bytes 3 Verzeichnis(se), 273.731.170.304 Bytes frei
使用exec
或spawn
会导致这样的结果:
Verzeichnis von D:\workspace\filewalker 22.12.2013 17:27 <DIR> . 22.12.2013 17:27 <DIR> .. 22.12.2013 17:48 392 test.js 22.12.2013 17:23 0 test .txt 22.12.2013 17:27 <DIR> test 2 Datei(en), 392 Bytes 3 Verzeichnis(se), 273.731.170.304 Bytes frei
这是我的节点代码:
var exec = require('child_process').exec, child; child = exec('dir', function (error, stdout, stderr) { console.log('stdout: ' + stdout); console.log('stderr: ' + stderr); if (error !== null) { console.log('exec error: ' + error); } });
有第二个可选的参数来指定几个选项。 默认选项是
{ encoding: 'utf8', timeout: 0, maxBuffer: 200*1024, killSignal: 'SIGTERM', cwd: null, env: null }
这是节点默认为utf8,而Windows有不同的语言版本的代码页。