VBA如何检查Server中的下载文件是否成功?

时间:2016-11-09 21:31:07

标签: vba excel-vba unix excel

我可以使用以下代码从服务器下载文件。但是,这确实告诉我文件是否已成功下载。

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

无论文件是否存在,我的错误代码始终等于0。我该如何更改此计划?

提前致谢!

更新

我尝试过的新代码:

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

但是我在这一行上收到错误:     WshShellExec = wsh.Exec(cmd3) 错误消息显示"对象不支持此属性或方法"。有什么想法吗?

0 个答案:

没有答案