我需要使用vbscript将文件上传到FTP站点并从FTP站点下载文件。在这两种情况下,我使用GetFolder.files在特定文件夹中搜索文件,然后在文件存在时上传或下载它们。我的上传脚本已经过测试并正确上传文件并将其移至已处理的文件夹:
Dim oFtp
Dim oFso
oFtp.Protocol = "SFTP"
oFtp.Host = "ftp2.HostName.com"
oFtp.Login = "hftest"
oFtp.Password = "********"
oFtp.UseProxy = "BOTH"
oFtp.Port = "2022"
oFtp.Connect
oFtp.LocalFolder = "C:\LocalFolder\Files"
oFtp.RemoteFolder = "RemoteFolder/Upload"
For Each oFile In oFso.GetFolder(oFtp.LocalFolder).Files
If (UCase(oFso.GetExtensionName(oFile.Name)) = "BIF") Then
oFtp.Upload oFile.Name
If UCase(oFtp.Status) = "FINISHED" Then
oFso.MoveFile oFtp.LocalFolder + "\" + oFile.Name, oFtp.LocalFolder + "\Processed\"
Else
Quit(1)
End If
End If
Next
我认为,由于这项工作,我可以通过使用远程端的GetFolder.files来反转下载脚本的过程,这样我就可以下载文件(如果它们存在)。我在For循环的行上得到“Path Not found”错误。我通过FTP手动转到它确认了远程文件夹存在。我已经确认该文件夹在FTP站点上拥有完全权限,我已经有一些公司vb脚本专家看我的脚本,没有人可以告诉我有什么问题。
Dim oFtp
Dim oFso
oFtp.Protocol = "SFTP"
oFtp.Host = "ftp2.HostName.com"
oFtp.Login = "hftest"
oFtp.Password = "********"
oFtp.UseProxy = "BOTH"
oFtp.Port = "2022"
oFtp.Connect
oFtp.LocalFolder = "C:\LocalFolder\Payments"
oFtp.RemoteFolder = "RemoteFolder/Payments"
For Each oFile In oFso.GetFolder(oFtp.RemoteFolder).Files
oFtp.Download oFile.Name
If UCase(oFtp.Status) = "FINISHED" Then
oFtp.DeleteFile(oFtp.RemoteFolder + "/" + oFile.Name)
Else
Quit
End If
Next
我确信语法不是100%完美,因为我正在学习vb脚本,因为这是我们当前旗舰应用程序的新项目。