NodeJS - Spawn功能

时间:2013-10-10 08:33:01

标签: javascript windows node.js batch-file child-process

我正在使用nodejs和子进程模块在我的平台上执行命令。为此,我使用spawn function

这是我的代码:

var spawn_execution = executor.spawn(command, args);

spawn_execution.stdout.on('data', function (data) {
    console.log('stdout: ' + data);
});

spawn_execution.stderr.on('data', function (data) {
    console.log('stderr: ' + data);
});

没什么特别的。所以我尝试了几个像

一样的命令
executor.spawn('C:/path/to/ffmpeg.exe', [...]);

但是当我尝试使用本机Windows命令时,它不起作用。例如,我试过:

executor.spawn('del', ['C:\\my\\file\\to\\delete']);

执行此操作时,我遇到ENOENT错误,表示找不到该文件。所以我做了另一件事:

executor.spawn('C:/my/script-delete.exe', ['C:\\my\\file\\to\\delete']);

此script-delete.exe只包含:

del %1

那么为什么spawn函数需要有一个脚本文件?为什么它不适用于本机Windows命令?你知道一种使用本机命令工作的方法吗?

谢谢!

1 个答案:

答案 0 :(得分:8)

它不起作用,因为只有executor.spawn只有cmd.exe知道它们才能找到内部命令。

所以它适用于批处理文件或使用类似

的内容
executor.spawn('cmd.exe', ['/C', 'del', 'C:\\my\\file\\to\\delete']);