2016-11-13 49 views
1

我正在通過child_process.spawn()一個.bin文件,這需要一些投入,從用戶完成安裝之前運行。它似乎工作正常通過process.stdin.write("input"\n);正確地採取所有輸入。但是,當通過stdin發送密碼時,這也不起作用。直接運行bin文件並手動輸入密碼。在通過node.js發送密碼之前,是否應該設置一些格式?我只是繼續看到*連續登錄到stdout,並且安裝似乎沒有進一步進行。以下是我正在使用的代碼段的Node.js輸入密碼bin文件正在通過產卵

var child_process = require('child_process'); 
var process = child_process.spawn('./test.bin'); 

process.stdout.on('data', function(data) { 
if(data.toString().trim() === 'Username:') 
    process.stdin.write("test\n"); // This works 
else if (data.toString().trim() === 'Password:') 
    process.stdin.write("password\n"); //This doesn't 

同樣的任何輸入可能會有所幫助。謝謝。

請注意,當通過直接運行bin文件,在輸入密碼時輸入的密碼,不顯示任何內容,但輸入正確的密碼作品。所以,我認爲可能存在一些編碼問題或類似我可能會遺漏的問題。

回答

0

回答我的問題,它似乎通過輸入密碼字符串一個字符時像下面的工作:

process.stdin.write(password[0]); 
process.stdin.write(password[1]); 
process.stdin.write(password[2]); 
process.stdin.write(password[3]); 
process.stdin.write("\n");