В предыдущем ответе SO, который вы связали, Mat Nadrofsky использовал клиента командной строки sftp. В этом примере мой клиент sftp - это pscp.exe. Этот клиент является частью инструментов PuTTY: Страница загрузки PuTTY
Я хочу собрать и запустить такую команду, чтобы скопировать sample.txt в мой домашний каталог на удаленной машине:
"C:\Program Files\PuTTY\pscp.exe" -sftp -l hans -pw changeme C:\Access\sample.txt 192.168.1.6:/home/hans/
Итак, эта процедура создаст и запустит эту командную строку.
Public Sub SftpPut()
Const cstrSftp As String = """C:\Program Files\PuTTY\pscp.exe"""
Dim strCommand As String
Dim pUser As String
Dim pPass As String
Dim pHost As String
Dim pFile As String
Dim pRemotePath As String
pUser = "hans"
pPass = "changeme"
pHost = "192.168.1.6"
pFile = "C:\Access\sample.txt"
pRemotePath = "/home/hans/"
strCommand = cstrSftp & " -sftp -l " & pUser & " -pw " & pPass & _
" " & pFile & " " & pHost & ":" & pRemotePath
Debug.Print strCommand
Shell strCommand, 1 ' vbNormalFocus '
End Sub
Вы можете предпочесть ShellAndWait вместо Shell, как предложил Дэвид Фентон в комментарии к предыдущему ответу.