VBS funktioniert nicht richtig!!!

Dieses Thema VBS funktioniert nicht richtig!!! im Forum "Webentwicklung, Hosting & Programmierung" wurde erstellt von Weissertiger, 12. März 2004.

Thema: VBS funktioniert nicht richtig!!! Hallo zusammen Kann mir jemand helfen, mein VBS funktioniert nicht richtig. Die Dateien kopiert es alle, aber ohne...

  1. Hallo zusammen

    Kann mir jemand helfen, mein VBS funktioniert nicht richtig.
    Die Dateien kopiert es alle, aber ohne einen Unterordner zu erstellen.

    z.B. C:\Temp hat drei Unterordner mit diverses Dateien, und ich möchte diese auf ein Serverlaufwerk speichern.

    Hier mein Script:

    ' Zähler:
    sys_kopiert = 0
    sys_aktuell = 0
    sys_ordner = 0

    'SYS: Microsoft (r) Script Runtime
    Set fs = CreateObject(Scripting.FileSystemObject)
    'SYS: Windows Script Host Runtime Library
    Set wshshell = CreateObject(WScript.Shell)

    ' In diesem Ordner liegen die Originaldaten:
    ' Sie könnten auch einen festen Ordnernamen angeben
    ' z.B. originale = C:\wichtige dinge
    originale = C:\Temp

    ' Hier sollen die Sicherungskopien gespeichert werden:
    ziel = U:\Backup

    PruefeKonventionen
    MsgBox Starte Backup, sobald Sie auf OK klicken!
    SichereOrdner originale, ziel

    list = Backup abgeschlossen. Ergebnis: & vbCr
    list = list & sys_kopiert & Dateien kopiert. & vbCr
    list = list & sys_aktuell & Dateien waren aktuell und wurden nicht kopiert. & vbCr
    list = list & sys_ordner & Ordner wurden neu angelegt.

    MsgBox list, vbInformation

    Sub PruefeKonventionen
    -> prüft, ob die Ordnernamen mit einem \ enden
    -> falls ja, wird dieses Zeichen abgeschnitten:
    If Right(originale,1) = \ Then
    originale = Left(originale, Len(originale)-1)
    End If
    If Right(ziel,1) = \ Then
    ziel = Left(ziel, Len(ziel)-1)
    End If
    End Sub

    Sub SichereOrdner(pfad, ziel)
    -> sichert einen Ordner
    If Not fs.FolderExists(pfad) Then
    MsgBox Ordner & pfad & existiert nicht!
    Exit Sub
    End If

    Set ordner = fs.GetFolder(pfad)
    For each datei in ordner.Files
    -> Das Skript nimmt den Originalpfad der zu sichernden
    -> Datei und ersetzt darin lediglich den Originalordner
    -> durch den Zielordner
    ->zielpfad = ziel & \ & datei.Name
    zielpfad = Replace(datei.Path, pfad, ziel)

    -> wie lautet der reine Ordnername? Dazu wird der Dateiname
    -> entfernt.
    zielordner = Left(zielpfad, InStrRev(zielpfad, \))

    -> wenn der Zielordner noch nicht existiert, wird er
    -> angelegt:
    If Not fs.FolderExists(zielordner) Then
    LegeOrdnerAn zielordner
    End If

    -> gibt es die Datei im Backupordner nicht? Dann anlegen!
    If Not fs.FileExists(zielpfad) Then
    datei.Copy zielordner
    sys_kopiert = sys_kopiert + 1
    Else
    -> hat sich die Datei verändert? Ist Archiv-Bit gesetzt?
    If (datei.Attributes And 32)<>0 Then
    datei.Copy zielordner
    sys_kopiert = sys_kopiert + 1
    Else
    sys_aktuell = sys_aktuell + 1
    End If
    End If

    -> Attribut auf jeden Fall scharf stellen, also löschen
    -> damit Änderungen beim nächsten Backup sichtbar werden
    -> und unveränderte Dateien nicht ein zweites Mal kopiert werden
    datei.Attributes = datei.Attributes And Not 32 And Not (8+16+64+128)
    Next

    -> Damit auch die Unterordner gesichert werden,
    -> ruft sich diese Prozedur einfach selbst für alle Unterordner
    -> auf (rekursiver Aufruf)
    For each unterordner in ordner.SubFolders
    -> Diesen Ordner im Backup-Verzeichnis anlegen
    -> dazu wieder Originalordner ersetzen durch Zielordner
    LegeOrdnerAn Replace(unterordner.Path, originale, ziel)
    -> Diesen Unterordner ebenfalls sichern
    SichereOrdner unterordner.Path, ziel
    Next
    End Sub

    Sub LegeOrdnerAn(pfad)
    If Right(pfad,1) = \ Then
    neuerpfad = Left(pfad, Len(pfad)-1)
    Else
    neuerpfad = pfad
    End If

    anteile = Split(neuerpfad, \)

    For each anteil in anteile
    checkpfad = checkpfad & anteil & \
    If Not fs.FolderExists(checkpfad) Then
    fs.CreateFolder checkpfad
    sys_ordner = sys_ordner + 1
    End If
    Next
    End Sub


    Hoffe jemand kann mir helfen.

    Thx Weissertiger
     
  2. also bei mir werden zwar die ordner angelegt, dafür werden die dateien aber alle ins root vom backup-folder gelegt.

    ist jetzt zwar keine problemlösung, aber vieleicht nen hinweis.

    gruß
    nico
     
  3. Hallo zusammen!

    Auf einem anderen Compi habe ich das gleiche Problem wie Nico.
    Die Ordner erstellts zwar, aber die Dateien kopierts alle ins root.

    Weiss jemand wo das Problem liegen könnte.

    Danke und Gruss
    Weissertiger
     
  4. Hi

    Bei diesem Code weiss ich nicht so genau, aber da ist irgentwie keine Funktion eingebaut, die die Unterordner scannt.

    Mfg Alexander
     
  5. doch schon:
    wo kommt der code eigentlich her?
     
  6. Hi

    Dort werden aber nur die Ordner angelegt, aber nicht nach den enthaltenen Dateien gescannt.

    Mfg Alexander
     
  7. Hallo

    Das Script habe ich von einem Buch. Welches diverse Beispiele auf CD hatte. Scripting für Administratoren.

    Deshalb hat es mich erstaunt, dass es nicht richtig funktioniert.

    Greetz
    Weissertiger
     
Die Seite wird geladen...

VBS funktioniert nicht richtig!!! - Ähnliche Themen

Forum Datum
Open Office Datei direkt versenden funktioniert nicht .... Windows 10 Forum 31. Okt. 2016
HDD funktioniert nicht. Windows 10 Forum 30. Sep. 2016
Tastatur funktioniert nicht richtig - aber nur beim Login Hardware 23. Sep. 2016
Windows Update 10 funktioniert nicht Windows 10 Forum 9. Juni 2016
Ton funktioniert nicht mehr. Windows 10 Forum 9. Apr. 2016