我正在通过.bin
运行child_process.spawn()
文件,该文件在完成设置之前接收用户的一些输入。通过process.stdin.write("input"\n);
正确地获取所有输入似乎正常。但是,当通过stdin发送密码时,同样不起作用。直接运行bin
文件并手动输入密码。在通过node.js发送密码之前,我应该设置一些格式吗?我只是继续看到*
连续登录stdout,设置似乎没有继续进行。以下是我正在使用的片段
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 :(得分: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");