2016-12-16 22 views
1

私は.exec.spawnのコンセプトの違いを理解しています。 私は単純なコマンドを実行しようとしています。つまり、echoと言うことができます。'child_process'.execと.spawn ENOENT

.execを使用すると、コマンドが正常に動作します。 .spawnで私はError: spawn echo ENOENTを受け取る。

私は間違って何をしていますか?

// WORKS AS EXEPCTED 
const exec= require('child_process').exec; 
exec("echo hello", function(err, stdout) { 
    console.log(stdout); 
}); 

// THROWS 
const spawn = require('child_process').spawn; 
spawn("echo", ["hello"]); // fail 

エラーは受け取ら:

Error: spawn echo ENOENT 
at exports._errnoException (util.js:1026:11) 
at Process.ChildProcess._handle.onexit (internal/child_process.js:193:32) 
at onErrorNT (internal/child_process.js:359:16) 
at _combinedTickCallback (internal/process/next_tick.js:74:11) 
at process._tickCallback (internal/process/next_tick.js:98:9) 
at Module.runMain (module.js:606:11) 
at run (bootstrap_node.js:394:7) 
at startup (bootstrap_node.js:149:9) 
at bootstrap_node.js:509:3 

私はWindows上で実行しています!

ご協力いただきありがとうございます。

+0

回答しにくいコードサンプルを提供してください。このような基本的なコマンドの実行には、neithrのexecやspawnに未解決のバグはありません。 –

答えて

0

私は最終的に私の質問に対する答えを見つける。 問題は、Windows上のspawn実装は実行可能ファイルのみを起動できることです。

この問題を回避するには、win-spawnを使用します。

関連する問題