Excel VBA telnet使用plink(Putty和#x27;的命令行)-将命令发送到plink.exe

Excel VBA telnet使用plink(Putty和#x27;的命令行)-将命令发送到plink.exe,excel,vba,putty,plink,Excel,Vba,Putty,Plink,我想: 使用VBA作为TCP/IP客户端连接到某台计算机 发送命令-说“帮助”+vbcrlf 将回复捕获到剪贴板或文件中,然后我可以将它们粘贴到工作表中 这一部分真的让我很困惑-对于.run和.exec,我不知道如何发送“help”+回车。我可以打开shell窗口,但无法让StdIn向plink.exe发送命令 我没走多远: Sub Test1() Const TARGET_HOST = "192.168.0.2 -P 24" ' Some proprietary telnet por

我想:

  • 使用VBA作为TCP/IP客户端连接到某台计算机
  • 发送命令-说“帮助”+vbcrlf
  • 将回复捕获到剪贴板或文件中,然后我可以将它们粘贴到工作表中
  • 这一部分真的让我很困惑-对于.run和.exec,我不知道如何发送“help”+回车。我可以打开shell窗口,但无法让StdIn向plink.exe发送命令 我没走多远:

    Sub Test1()
    
        Const TARGET_HOST = "192.168.0.2 -P 24" ' Some proprietary telnet port 
        Const PLINKPATH = "C:\program files\putty\plink.exe"
    
        Set sh = CreateObject("WScript.Shell")
        cmd = """C:\program files\putty\plink.exe"" -telnet " & TARGET_HOST
    
        sh.Run cmd & " | clip", 1, True
    
    End Sub
    

    如果此方法不是向plink.exe发送命令的正确方法,那么可以使用哪些其他方法而不必使用winsock方法,因为winsock方法很难继续前进

    您可以使用简单的输入重定向。实际上,您已经使用
    |clip
    重定向了输出。同样,要重定向输入,请执行以下操作:

    "echo help | " & cmd & " | clip"
    


    另请参见。

    是否有可以发送到服务器以关闭会话的命令?像
    exit
    ?我认为exit只有在使用cmd的telnet时才有效。不管怎么说,这只是我想做的一大堆其他事情的一个起点——我不能越过这一点真的很令人沮丧。我花了好几个小时研究这个问题——我看到了一个关于如何从cmd获取回复的好例子——比如ipconfig,但我似乎无法让它与plink一起工作。“我认为只有当您使用cmd的telnet时退出才有效”——你为什么这么认为?为什么
    exit
    在代码中的行为会有所不同?+我不明白你其余的评论。到目前为止,您告诉我们的唯一问题是关闭隐藏的Plink实例的连接。您将如何发送exit命令?在上面的例子中,我得到的只是一个cmd窗口,显示我已成功连接到任何设备。我不知道如何(1)向该shell发送命令,(2)关闭窗口。如何发送“退出”?sh.Run“exit”不起作用-手动键入单词exit也不起作用,因为打开的shell窗口现在是与设备的连接。如果我转到shell窗口,键入exit-这只是返回一个错误,因为其他设备不支持命令exit。我应该澄清这不是到另一台PC的正常telnet连接-这是与任何支持tcp连接的产品的tcp客户端会话。我希望制作一个Excel表格,在那里我可以指定端口号以及在表格上发送什么命令。