VBS: Dateien auf einen FTP hochladen mit VBS (FTPUpload)
Ich brauchte ein Skript um eine Datei auf einen FTP hochzuladen ohne zusätzliche Software - nur mit Boardmitteln.
Daraus ist folgendes VBS entstanden, dass genau das macht - FTPUpload:
Daraus ist folgendes VBS entstanden, dass genau das macht - FTPUpload:
'Objekte definieren Set oShell = CreateObject("Shell.Application") Set objFSO = CreateObject("Scripting.FileSystemObject") 'Datei für Upload festlegen path = "C:\lang.txt" FTPUpload(path) 'Datei hochladen 'Subroutine für FTPUpload Sub FTPUpload(path) On Error Resume Next Const copyType = 16 'FTP Wartezeit in ms, damit sichergestellt wird, dass Upload erfolgreich 'Abhängig von der größe der übertragenen Datei - bei mir waren es nur ein paar kB! waitTime = 80000 FTPUser = "ftpuser" 'FTP-Benutzername FTPPass = "ftppassword" 'FTP-Passwort FTPHost = "ftp.keineahnung.de" 'FTP-Hostnmae oder IP FTPDir = "/" 'FTP-Verzeichnis - mit / abschließen (z.B. "/test/") 'String für Verbindung bauen und an Shell übergeben strFTP = "ftp://" & FTPUser & ":" & FTPPass & "@" & FTPHost & FTPDir Set objFTP = oShell.NameSpace(strFTP) 'Upload der Datei 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 "Upload der Datei " & objItem.Name & " nach " & strFTP objFTP.CopyHere objItem, copyType End If 'Fehlerroutine, falls gewünscht - kann auch auskommentiert werden If Err.Number <> 0 Then Wscript.Echo "Error: " & Err.Description End If 'Warten bis Upload fertiggestellt Wscript.Sleep waitTime Msgbox "FTP-Upload durchgeführt" End Sub