Этот код загружает файл на FTP-сервер, используя Putty
Dim wsh As Object
Dim waitOnReturn As Boolean
Dim windowStyle As Integer
Dim cstrSftp As String
Dim strCommand As String
Dim pUser As String
Dim pPass As String
Dim pHost As String
Dim pFile As String
Dim pRemotePath As String
Dim site As String
Dim resp As String
Set wsh = VBA.CreateObject("WScript.Shell")
'Wait the execution to finish
waitOnReturn = True
'Show the window
windowStyle = 1
'Variables
cstrSftp = """" & Application.ActiveWorkbook.Path & "\pscp.exe" & """"
site = "http://mysite/"
pUser = "user"
pPass = "password "
pHost = "ftp.mysite"
pRemotePath = "/home/"
pFile = """" & Application.ActiveWorkbook.Path & "file.png" & """"
'Command string
strCommand = "cmd /c echo n | " & cstrSftp & " -sftp -l " & pUser & " -pw " & pPass & " " & pFile & " " & pHost & ":" & pRemotePath
'Run the command
wsh.Run strCommand, windowStyle, waitOnReturn
Поскольку сервер хранения не является надежным, мне нужно захватить вывод, чтобы узнать, сработала ли загрузка.И, если это не так, мне нужно знать, что это за сообщение.
Я подумал об использовании команды "> C: \ output.txt" для захвата вывода.Вот так
strCommand = strCommand & " > " & """" "C:\output.txt" & """"
Когда загрузка работает, мой выходной файл тоже работает.Но когда загрузка не работает, в выходной файл ничего не записывается.
Например, когда я получаю сообщение Fatal: Server unexpectedly closed network connection
, в выходной файл ничего не пишется.Но мне нужно знать, что именно сообщается.