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

Telnet not valid when opening command prompt with Ruby

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

telnet <server> <port>

当我使用 Ruby 打开命令提示符时,使用以下命令和 运行 上面相同的 telnet 命令,我得到“'telnet' 未被识别为内部或外部命令、可运行程序或批处理文件。'

Ruby 命令:

system('start cmd.exe)

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

一些好的后续步骤是:

  • 使用 WHERE 找到 telnet.exe,然后使用 telnet.exe.
  • 的路径调用 system
  • 我建议使用 Open3.popen3() 而不是 system,这样您就可以通过 STDINSTDOUTSTDERR 与实际的 telnet 程序进行交互.
  • 最后,我建议您使用 net-telnet 而不是上述任何选项,因为它公开了一个更容易 API 使用而不是包装 Windows Telnet 客户端。

cmd.exe 不在您 运行 irb 所在的位置(或者您的 ruby shell.

您需要将完整路径传递给 cmd.exe,包括任何 illegal path characters 的转义符,例如C:\some\folder\path\to\cmd.exe

system('start C:\some\folder\path\to\cmd.exe')