2012-04-03 7 views
3

私はこれは私があなたがいずれかのパイプノードのコンソール出力ア・ラ「ノードをすることができますNode.js内の出力をリダイレクトするには、どのように '>'を使用できますか?例えば

var util = require('util'), 
    spawn = require('child_process').spawn; 

var cat = spawn('echo', ['> temp.txt']); 
cat.stdin.write("testing"); 
cat.stdin.end(); 

残念ながらありません成功

+0

あなたは(https://github.com/ [stdoutStream]に設定しようとしたことがありjoyent/node/blob/v0.7.7/lib/child_process.js#L449)代わりに? –

答えて

4

リダイレクト文字(>)は、コマンドの有効な引数ではないため、spawnの引数として渡すことはできません。あなたは、別のシェルにそれを与えるか、このアプローチを取るものは何でも、コマンド文字列実行する、卵の代わりにexecを使用することができます 次のいずれか

var cat = spawn('echo', ['testing']); 

cat.stdout.on('data', function(data) { 
    fs.writeFile('temp.txt', data, function (err) { 
     if (err) throw err; 
    }); 
}); 
0

を試してみましたが、どのような単純なコマンドに

echo testing > temp.txt 

を複製したいと仮定foo.js> output.txt "またはfsパッケージを使用してファイル書き込みを行うことができます

+0

私はopがコマンドラインプログラムとパイプをstdinに実行したいと思います。 –

0

echo標準入力のためのOCK:それはしかしあなたに有用であると考えられる場合、私は知らない

var cat = spawn('tee', ['temp.txt']); 
cat.stdin.write("testing"); 
cat.stdin.end(); 

~$ echo "hello" | echo 
~$ 

^が出力なし...

だから、あなたが試みることができることはこれです。

+0

これは試してみるとファイルを書きません。 – deltanovember

+0

申し訳ありませんが、私は自分の答えを更新しました。 '>'演算子ではありませんが、出力はファイルになります。 –

関連する問題