0

I'm able to use the below code to download files from server. However, this does tell me whether the files are downloaded successfully.

Sub DownloadFirstRunFilesPart2()
Application.StatusBar = "Downloading files..."
Dim wsh As Object
Dim errorcode4 As Integer
Dim cmd5 As Variant
Dim FirstRunFiles(5) As Variant
Dim var As Variant

FirstRunFiles(0) = ProN & "_KSParameter_UserInput.xlsx"
FirstRunFiles(1) = ProN & "_KSParameter_SysOutput.xlsx"
FirstRunFiles(2) = ProN & "_ModelParameter_UserInput.xlsx"
FirstRunFiles(3) = ProN & "_ModelParameter_SysOutput.xlsx"
FirstRunFiles(4) = ProN & "_VarClusParameter_UserInput.xlsx"
FirstRunFiles(5) = ProN & "_VarClusParameter_SysOutput.xlsx"

For Each var In FirstRunFiles
cmd5 = Chr(34) & "C:\Program Files (x86)" & "\PuTTY\pscp.exe" & Chr(34) & " -sftp -l " & pUser & " -pw " & pPass & _
    " " & " " & pHost & ":" & ServerPath & "/" & var & " " & LocalPath & "\"
Set wsh = CreateObject("wscript.shell")
errorcode4 = wsh.Run(cmd5, vbHide)
'If errorcode4 = 0 Then MsgBox ("Error occurs. Fail to download " & var)
Next var

Application.StatusBar = "Download complete"
MsgBox ("Downloading process complete.")
End Sub

My error code always equals 0 no matter the file exists or not. How should I change this program?

Thanks in advance!


Update:

The new code that I tried:

Sub test()
Dim wsh As Object
Dim WshShellExec As Variant
Dim cmd3 As String
Dim pFirstRunFile1 As String
Const WshFinished = 1
Const WshFailed = 2

pFirstRunFile1 = "this_proj_name.txt"

cmd3 = Chr(34) & "C:\Program Files (x86)" & "\PuTTY\pscp.exe" & Chr(34) & " -sftp -l " & pUser & " -pw " & pPass & _
    " " & " " & pHost & ":" & ServerPath & "/WOE/" & pFirstRunFile1 & " " & LocalPath & "\WOE"

Set wsh = CreateObject("wscript.shell")
WshShellExec = wsh.Exec(cmd3)

Select Case WshShellExec.Status
Case WshFinished
   strOutput = WshShellExec.StdOut.ReadAll
Case WshFailed
   strOutput = WshShellExec.StdErr.ReadAll
End Select

MsgBox strOutput                'write results in a message box

End Sub

However I'm getting error on this line: WshShellExec = wsh.Exec(cmd3) The error message says "Object does not support this property or method". Any ideas?

Community
  • 1
  • 1
vivi11130704
  • 431
  • 8
  • 21
  • See [this post](http://stackoverflow.com/a/6073170/1188513) for reading the `StdErr` output of your `WScript` object. – Mathieu Guindon Nov 09 '16 at 23:17
  • Thank you for the link! I tried their code but still doesn't work. I updated my post with the new error message. Could you plz take a look? – vivi11130704 Nov 10 '16 at 15:06

0 Answers0