Я сделал приложение node.js, чтобы перечислить все .txt файлы из каталога рекурсивно и, для каждого из них, сделать некоторые вещи.
Здесь my app.js:
var spawn = require('child_process').spawn,
dir = spawn('dir', ['*.txt', '/b']);
dir.stdout.on('data', function (data) {
//do some stuff with each stdout line...
console.log('stdout: ' + data);
});
dir.stderr.on('data', function (data) {
//throw errors
console.log('stderr: ' + data);
});
dir.on('close', function (code) {
console.log('child process exited with code ' + code);
});
Когда я запускаю node app.js через консоль, я получаю сообщение об ошибке ниже:
events.js:72
throw er; // Unhandled 'error' event
^
Error: spawn ENOENT
at errnoException (child_process.js:980:11)
at Process.ChildProcess._handle.onexit (child_process.js:771:34)
Я использую node v0.10.13 в среде win32.
Я делаю этот путь (spawn), потому что я хочу обрабатывать stdout по строкам (метод exec выделяет целую stdout как одну строку).
* ОБНОВЛЕНИЕ *
Кстати, использование
spawnдляchild_processне гарантирует, что вывод дляcmd dirбудет строковым. Я также создал вопрос для этого.