Windowsで子プロセスを生成して、ターミナル(cmd.exe)を開きたい。子プロセスから親にデータをストリーミングできないことを除いて、すべてが機能しました。親プロセスの端末からの出力にアクセスしたい。これが私のコードです:
var spawn = require('child_process').spawn;
var child = spawn('cmd', [ '/c', 'start'], {
cwd: '{path-to-folder}'
});
child.stdout.on('data', function (data) {
console.log(data);
});
child.stderr.on('data', function (data) {
console.log(data);
});
child.on('close', function () {
console.log('close');
})
私は本当に立ち往生しているので、どんな助けやヒントも素晴らしいでしょう!前もって感謝します!
これは、新しいターミナルセッションで新しいシェルを開始しているためです。同じターミナルセッションで実行されるコマンドからの出力のみをインターセプトできます。
たとえば、に変更start
するdir
と、次の出力が表示されます。
var child = spawn('cmd', [ '/c', 'dir'], {
cwd: '.'
});
child.stdout.on('data', function (data) {
console.log(data.toString());
});
ドライブCのボリュームにはラベルがありません。ボリュームシリアル番号は9401-94AEです
Directory of C:\Temp
12/02/2015 01:29 PM <DIR> .
12/02/2015 01:29 PM <DIR> ..
12/02/2015 01:30 PM 403 test.js
4 File(s) 10,423,442 bytes
4 Dir(s) 12,869,840,896 bytes free
close
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加