Как загрузить файл в каталог FTP-сервера с помощью vbscript?
Я пытаюсь сделать vbscript для загрузки файлов в удаленный каталог ftp, после запуска скрипта и проверки каталога я обнаружил, что ожидаемый файл не загружается.
Я работаю над этим уже несколько часов, и я не могу исправить это сам. Я был бы признателен за решение этой проблемы.
Что я уже пробовал:
Set oShell = CreateObject("Shell.Application") Set objFSO = CreateObject("Scripting.FileSystemObject") Dim path As String LocalPath = Environ("HOMEPATH") & "\AppData\Roaming\source1\" 'Path to file or folder to upload path = LocalPath & "filescopy.txt" intMaxAttempt = 5 intCurAttempt = 0 boolSuccess = False Do While Not boolSuccess intCurAttempt = intCurAttempt + 1 If intCurAttempt > intMaxAttempt Then Set objFile = objFSO.OpenTextFile(LocalPath & "log.txt", 8, True) ' 8=append, 2=overwrite objFile.WriteLine(path & " did NOT upload successfully on " & Now) objFile.Close Exit Do End If boolSuccess = FTPUpload(path) If boolSuccess Then If objFSO.FileExists(path) Then objFSO.DeleteFile path End If If objFSO.FolderExists(path) Then Set objFolder = objFSO.GetFolder(path) For Each strFile In objFolder.Files objFSO.DeleteFile strFile Next End If Set objFile = objFSO.OpenTextFile(LocalPath & "log.txt", 8, True) ' 8=append, 2=overwrite objFile.WriteLine(path & " uploaded successfully on " & Now) objFile.Close Exit Do Else End If Loop Function FTPUpload(path) FTPUpload = True On Error Resume Next 'Copy Options: 16 = Yes to All Const copyType = 16 'FTP Wait Time in ms waitTime = 80000 FTPUser = "User" FTPPass = "Pass" FTPHost = "host.com" FTPDir = "/" strFTP = "ftp://" & FTPUser & ":" & FTPPass & "@" & FTPHost & FTPDir Set objFTP = oShell.NameSpace(strFTP) 'Make new folder on FTP site 'objFTP.NewFolder "FTP Backup" 'Upload single file If objFSO.FileExists(path) Then Set objFile = objFSO.getFile(path) strParent = objFile.ParentFolder Set objFolder = oShell.NameSpace(strParent) Set objItem = objFolder.ParseName(objFile.Name) Wscript.Echo "Uploading file " & objItem.Name & " to " & strFTP objFTP.CopyHere objItem, copyType End If 'Upload all files in folder If objFSO.FolderExists(path) Then 'Code below can be used to upload entire folder Set objFolder = oShell.NameSpace(path) Wscript.Echo "Uploading folder " & path & " to " & strFTP objFTP.CopyHere objFolder.Items, copyType End If If Err.Number <> 0 Then Wscript.Echo "Error: " & Err.Description FTPUpload = False End If 'Wait for upload WScript.Sleep waitTime End Function
Когда я использовал этот код, я получаю путь не найден.
Richard MacCutchan
Вам нужно добавить некоторый отладочный код к вашему сценарию, чтобы узнать, что происходит при его запуске. Люди здесь не могут догадаться, что происходит.
cHl Security
Я получаю ошибку:
Хост Winscript"
Ошибка: Требуется Объект
Richard MacCutchan
Сколько раз вам нужно увидеть эту ошибку, прежде чем вы что-то с ней сделаете? Это ясно говорит вам, что CreateObject("Shell.Application")
это неудача, поэтому вам нужно исследовать, почему.
cHl Security
Я обновил вопрос. Как бы проверить, пожалуйста