当我手动打开命令提示符并输入以下命令时,我会收到来自我正在ping的服务器的响应。
telnet <server> <port>
当我使用Ruby打开命令提示符时,使用以下命令,并运行上面的相同telnet命令,我得到了&#39;&#39; telnet&#39;不被识别为内部或外部命令,可操作程序或批处理文件。&#39;
Ruby命令:
system('start cmd.exe)
它打开提示正常,但命令本身不起作用,我不确定为什么会这样。
答案 0 :(得分:3)
接下来的一些好步骤是:
WHERE
找到telnet.exe
,然后使用system
的路径调用telnet.exe
。Open3.popen3()
而不是system
,以便您可以通过STDIN
,STDOUT
和STDERR
与实际的telnet计划进行互动。< / LI>
net-telnet
而不是上述任何选项,因为它公开了一个更简单的API,而不是包装Windows Telnet客户端。 答案 1 :(得分:0)
cmd.exe
不在您运行irb
的地方(或者您的红宝石外壳。
您需要将完整路径传递给cmd.exe
,包括任何illegal path characters的转义,例如C:\some\folder\path\to\cmd.exe
system('start C:\some\folder\path\to\cmd.exe')