【问题标题】:Node.js input password to a bin file being run via spawnNode.js 向通过 spawn 运行的 bin 文件输入密码
【发布时间】:2016-11-13 16:58:43
【问题描述】:

我正在通过child_process.spawn() 运行.bin 文件,该文件在完成设置之前接受用户的一些输入。通过process.stdin.write("input"\n); 正确获取所有输入似乎工作正常。但是,当密码通过标准输入发送时,同样不起作用。直接运行bin 文件并手动输入密码即可。在通过 node.js 发送密码之前,我应该设置一些格式吗?我只是不断看到* 不断登录到标准输出,并且设置似乎没有进一步进行。下面是我正在使用的 sn-p

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文件输入密码时,输入密码时没有任何显示,但输入正确的密码有效。因此,我认为可能存在一些编码问题或类似的问题。

【问题讨论】:

    标签: node.js stdin child-process


    【解决方案1】:

    回答我自己的问题,它似乎可以通过一次输入一个字符的密码字符串来工作,如下所示:

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

    【讨论】:

      猜你喜欢
      • 2011-04-03
      • 2022-07-07
      • 1970-01-01
      • 2020-01-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多