2016-05-15 198 views
0

我正在嘗試爲Unturned(這是一個殭屍生存遊戲)編寫管理工具。該遊戲的服務器在終端中運行。我想以某種方式獲得該控制檯的實時輸出,同時能夠寫入終端,這樣我就可以使用我在node.js中編寫的管理工具來控制服務器。我試圖谷歌/搜索解決方案,但不完全確定要尋找什麼。到目前爲止,我用child_process嘗試了不同的事情,但無濟於事。這樣的事情甚至可能,當是的時候如何?node.js:重定向標準輸入,(不同)控制檯應用程序的標準輸出

const spawn = require('child_process').spawn; 
const proc = spawn("Unturned.exe", ["-batchmode", "-nographics", "+secureserver/servername", "", "", "", ]); 

proc.stdout.on('data', (data) => { 
    console.log(data); 
}); 

proc.stderr.on('data', (data) => { 
    console.log(data); 
}); 

proc.on('exit', (code) => { 
    console.log(`Child exited with code ${code}`); 
}); 

等等。

const spawn = require('child_process').spawn; 

const proc = spawn("Unturned.exe", ["-batchmode", "-nographics", "+secureserver/servername", "", "", "", ], { stdio: ['pipe', 'pipe', 'pipe'] }); 

proc.stdout.on('data', (data) => { 
    console.log("stdout: "+data); 
}); 

proc.stderr.on('data', (data) => { 
    console.log("stderr: "+data); 
}); 

proc.on('exit', (code) => { 
    console.log(`Child exited with code ${code}`); 
}); 

兩者都不起作用(第一個沒有得到輸入/輸出,第二個沒有成功啓動服務器)。

在此先感謝。

回答

0

您確定Unturned.exe發送輸出到stdoutstderr。你可以這樣做:Unturned.exe -batchmode -nographics +secureserver/servername >data.txt

+0

輸出是第一個代碼給我回來的。所以我想它不會發送到標準輸出,但在別的地方。有沒有辦法找出它輸出/輸入的蒸汽,然後讀取/寫入它? – BlakkCooper

+0

在Windows中,exe可以直接將數據發送到控制檯,繞過標準流(不是與nodejs使用的控制檯相同)。如果這種情況下你無法捕捉它 –

相關問題