如何从Excel自动化PuTTy?

时间:2014-06-20 16:20:03

标签: excel vba excel-vba putty

我一直试图通过Excel中的VBA自动执行以下一系列步骤

  1. 登录putty
  2. 执行命令
  3. 从putty复制结果并将其粘贴到excel中。
  4. 到目前为止,我已经编写了通过启动putty应用程序登录服务器的代码。(请参阅下面的代码)

    Sub Putty()
      Dim TaskID As Long
      TaskID = Shell("path/putty.exe servername", vbNormalFocus)
      AppActivate TaskID, True
      SendKeys "username"
      SendKeys "{ENTER}"
      SendKeys "password"
      SendKeys "{ENTER}"
      '---- Here i need to execute a command for eg: "ls -l" and copy the result into Excel
    End Sub
    

    请您介绍一下如何在此步骤后执行命令并将结果从PuTTy复制到Excel?

3 个答案:

答案 0 :(得分:1)

我会使用Plink而不是主要的Putty应用程序。 Plink是专为命令行设计的putty。

查看shell重定向,答案如this here

基本思路是你可以创建一个WScript.Shell对象,使用它运行plink.exe,然后写入StdIn并从StdOut读取。 StdIn就像在控制台窗口中键入文本一样,StdOut就是在所述控制台窗口中向用户显示的内容。

答案 1 :(得分:0)

您可以在putty中指定日志文件并随时查看该日志文件。这不是最好的方法,但没有管理员权限,这是一种方法。

答案 2 :(得分:0)

如果在脚本中添加应用程序等待计时器会更好,因为sendkeys功能不是很可靠。