我正在尝试通过使用 VBA 宏中的 plink.exe 启动 putty 会话来自动化 ssh 会话。自动化的一部分是向 linux 服务器发送一些命令。运行宏后,plink 会在空白命令提示符窗口中打开,但几秒钟后关闭。这是尝试运行 plink.exe 的行Set oExec = WshShell.exec("plink.exe -load aaTest")
。我最初怀疑可能是字符串格式不正确。但是,当我尝试通过将上面的行替换为来从同一个宏运行 putty gui 时Set oExec = WshShell.exec("putty.exe -load aaTest")
,putty gui 会打开并且我可以登录。StdIn.Write 代码不起作用,这是因为 putty 不使用 StdIn。但我不明白为什么 plink 不工作。我在这里做错了什么?
完整宏如下。
Sub AutoMop()
'
' AutoMop Macro
'
'
Set WshShell = VBA.CreateObject("WScript.Shell")
WshShell.CurrentDirectory = ("C:\Users\lxp\Core\91CS\PuTTY")
Set oExec = WshShell.exec("plink.exe -load aaTest")
' Write to the input stream
oExec.StdIn.Write "service ssh status" & vbCrLf
'Application.Wait (Now + TimeValue("0:00:00:05"))
oExec.StdIn.Write "sudo service ssh restart" & vbCrLf
End Sub