Node.js 通过 spawn 输入密码到正在 运行 的 bin 文件
Node.js input password to a bin file being run via spawn
我是 运行 通过 child_process.spawn()
的 .bin
文件,它在完成设置之前接收用户的一些输入。通过 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
相同的任何输入可能是 helpful.Thanks。
请注意,当直接通过运行 bin
文件输入密码时,在输入密码时,不会显示任何内容,但输入正确的密码即可。所以,我认为可能存在一些编码问题或我可能遗漏的类似问题。
回答我自己的问题,它似乎通过一次输入一个字符的密码字符串来工作,如下所示:
process.stdin.write(password[0]);
process.stdin.write(password[1]);
process.stdin.write(password[2]);
process.stdin.write(password[3]);
process.stdin.write("\n");
我是 运行 通过 child_process.spawn()
的 .bin
文件,它在完成设置之前接收用户的一些输入。通过 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
相同的任何输入可能是 helpful.Thanks。
请注意,当直接通过运行 bin
文件输入密码时,在输入密码时,不会显示任何内容,但输入正确的密码即可。所以,我认为可能存在一些编码问题或我可能遗漏的类似问题。
回答我自己的问题,它似乎通过一次输入一个字符的密码字符串来工作,如下所示:
process.stdin.write(password[0]);
process.stdin.write(password[1]);
process.stdin.write(password[2]);
process.stdin.write(password[3]);
process.stdin.write("\n");