2016-05-28 11 views
0

Ich habe eine VBScript-Datei wie Sie unten sehen:Erstellen von Ordnern im FTP-Server

Set oShell = CreateObject("Shell.Application") 
Set objFSO = CreateObject("Scripting.FileSystemObject") 
Set objSB = CreateObject("System.Text.StringBuilder") 

yesterday = DateAdd("d", -1, Date) 
folderName = sprintf("{0:yyyyMMdd}", Array(yesterday)) & ".opentrades" 

fullPath = "C:\test\" & folderName 

Call FTPUpload(fullPath, folderName) 

Sub FTPUpload(fullPath, folderName) 
    Const copyType = 16 
    waitTime = 80000 
    FTPUser = "Username" 
    FTPPass = "Password" 
    FTPHost = "HostName" 
    FTPDir = "/1/" 

    strFTP = "ftp://" & FTPUser & ":" & FTPPass & "@" & FTPHost & FTPDir 
    Set objFTP = oShell.NameSpace(strFTP) 

    'Upload all files in folder 
    If objFSO.FolderExists(fullPath) Then 
     Set objFolder = oShell.NameSpace(fullPath) 
     Wscript.Echo "Uploading folder " & fullPath & " to " & strFTP 
     objFTP.CopyHere objFolder.Items, copyType 
    End If 

    If Err.Number <> 0 Then 
     Wscript.Echo "Error: " & Err.Description 
    End If 

    'Wait for upload 
    WScript.Sleep waitTime 
End Sub 

Function sprintf(sFmt, aData) 
    objSB.AppendFormat_4 sFmt, (aData) 
    sprintf = objSB.ToString() 
    objSB.Length = 0 
End Function 

Das Skript kopiert alle Dateien im angegebenen Verzeichnis (fullPath Variable) in das Zielverzeichnis (FTPDir Variable). Aber ich möchte einen neuen Ordner mit einem Namen in der Variable OrdnerName im FTP-Server erstellen und die Dateien in den neu erstellten Ordner kopieren. Ich bin neu in VBScript und offen für alle Ratschläge.

Vielen Dank im Voraus,

Antwort

1

die Linie ersetzen Set objFolder = oShell.NameSpace(fullPath) mit

Set objFolder = oShell.NameSpace(objFso.GetParentFolderName(fullPath))

und objFTP.CopyHere objFolder.Items, copyType mit

objFTP.CopyHere objFolder.ParseName(objFso.GetFileName(fullPath)), copyType

dann sollte es funktionieren.

Damit Ihr lokaler Namensraum wird der übergeordnete Ordner von fullPath sein und folderName wird das Element auf das Remote-Verzeichnis kopiert werden.

+0

Vielen Dank. Das funktioniert perfekt. – anilca

Verwandte Themen