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