2017-08-03 113 views
1

我想寫一個VBA宏,它將使用PuTTY和執行命令進行登錄。下面的代碼已被使用。如何使用來自VBA宏的PuTTY調用並執行一個shell腳本

Sub open_putty() 
    Dim UserName 'assign user name 
    Dim Passwrd 'assign password 
    Dim TaskID As Long 
    UserName = "user name" 
    Passwrd = "password" 
    pc1 = "C:\Program Files (x86)\PuTTY/putty.exe -ssh " & UserName & "@ip address -pw " & Passwrd 
    pc2 = "putty.exe -m ""C:\Temp\emu.sh""" 
    TaskID = Shell(pc1, 1) 
    TaskID = Shell(pc2, 1) 

End Sub 

腳本拋出一個錯誤說

'運行時錯誤 '53' - 找不到文件'。

請大家幫忙。

回答

0

與空格的文件路徑需要被引用:

Sub open_putty() 
    Dim UserName 'assign user name 
    Dim Passwrd 'assign password 
    Dim TaskID As Long 
    UserName = "user name" 
    Passwrd = "password" 
    pc1 = """C:\Program Files (x86)\PuTTY\putty.exe"" -ssh " & _ 
      UserName & "@ip address -pw " & Passwrd 
    pc2 = "putty.exe -m ""C:\Temp\emu.sh""" 
    TaskID = Shell(pc1, 1) 
    TaskID = Shell(pc2, 1) 

End Sub 
2
  • 你必須的路徑引用到膩子,因爲它包含空格。

  • 你也執行了兩次putty.exe。相反,你必須對所有這些參數傳遞給單個實例putty.exe

pc1 = """C:\Program Files (x86)\PuTTY\putty.exe"" " & _ 
    "-ssh " & UserName & "@ip address -pw " & Passwrd & " -m ""C:\Temp\emu.sh""" 
TaskID = Shell(pc1, 1) 

,你應該考慮使用plink.exe代替putty.exe,什麼是膩子工具旨在自動化。 PuTTY是用於交互式使用的GUI應用程序。

相關問題