4

nodejs と子プロセス モジュールを使用して、プラットフォームでコマンドを実行しています。そのために、spawn 関数を使用します。

これが私のコードです:

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 コマンドで動作しないのはなぜですか? ネイティブコマンドで動作させる方法を知っていますか?

ありがとうございました!

4

1 に答える 1

9

内部コマンドはそれらを知っている executor.spawnだけでは見つからないため、機能しません。cmd.exe

したがって、バッチファイルから、または次のようなものを使用するときに機能します

executor.spawn('cmd.exe', ['/C', 'del', 'C:\\my\\file\\to\\delete']);
于 2013-10-10T08:36:54.347 に答える