使用Ruby打开命令提示符时,Telnet无效

时间:2017-06-05 16:53:04

标签: ruby shell telnet

当我手动打开命令提示符并输入以下命令时,我会收到来自我正在ping的服务器的响应。

telnet <server> <port>

当我使用Ruby打开命令提示符时,使用以下命令,并运行上面的相同telnet命令,我得到了&#39;&#39; telnet&#39;不被识别为内部或外部命令,可操作程序或批处理文件。&#39;

Ruby命令:

system('start cmd.exe)

它打开提示正常,但命令本身不起作用,我不确定为什么会这样。

2 个答案:

答案 0 :(得分:3)

接下来的一些好步骤是:

  • 使用WHERE找到telnet.exe,然后使用system的路径调用telnet.exe
  • 我建议使用Open3.popen3()而不是system,以便您可以通过STDINSTDOUTSTDERR与实际的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')