Backup VBS läuft nicht

Dieses Thema Backup VBS läuft nicht im Forum "Webentwicklung, Hosting & Programmierung" wurde erstellt von Weissertiger, 6. Nov. 2003.

Thema: Backup VBS läuft nicht Hilfe! Habe ein VBS-Script gefunden, das ich auf meine Bedürfnisse anpassen wollte. Leider funktioniert es nicht...

  1. Hilfe! Habe ein VBS-Script gefunden, das ich auf meine Bedürfnisse anpassen wollte. Leider funktioniert es nicht richtig, wenn ich für mydocuments wie im File Beschrieben einen Ordner C:\temp\test nehme. Lasse ich mydocuments drin, funktioniert das Script, und es kopiert die ganzen Files in den Backup Ordner.

    ' 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 = wshshell.SpecialFolders(mydocuments)

    ' Hier sollen die Sicherungskopien gespeichert werden:
    ziel = c:\temp\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 = Replace(datei.Path, originale, 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


    Kann mir jemand helfen?

    Thanks
    Weissertiger
     
  2. Ersetze mal die Zeile

    zielpfad = Replace(datei.Path, pfad, ziel)

    durch

    zielpfad = ziel & \ & datei.Name
     
  3. Code:
    ' In diesem Ordner liegen die Originaldaten:
    ' Sie könnten auch einen festen Ordnernamen angeben
    ' z.B. originale = C:\wichtige dinge
    originale = wshshell.SpecialFolders(mydocuments)
    wshshell.SpecialFolders kann nur mit Spezial-Ordnern benutzt werden:

    AllUsersDesktop
    AllUsersStartMenu,
    AllUsersPrograms
    AllUsersStartup
    Desktop
    Favorites
    Fonts
    MyDocuments
    NetHood
    PrintHood
    Programs
    Recent
    SendTo
    StartMenu
    Startup
    Templates

    Du kannst daher nicht einfach den->mydocuments'-Teil ändern, sondern musst die ganze Zeile anpassen:
    Code:
    originale = C:\temp\test
    statt:
    Code:
    originale = wshshell.SpecialFolders(mydocuments)
     
  4. Ich denke mal, das hat er auch so gemacht. Doch genau so funktioniert es nicht. Die Replace-Funktion in Zeile 53 greift in diesem Falle nicht.
     
  5. @JanaS
    Dann würds aber mit dem->mydocuments' auch nicht funktionieren ....

    So wie er es formuliert hat er nämlich gerade dies nicht gemacht.
     
  6. Ich habe das Skript getestet, bevor ich antwortete.
    Du kannst mir gerne glauben.
     
  7. Hello zusammen

    @JanaS
    Danke für den Tipp hat funktioniert!

    @BeyondTheSilence
    Das habe ich gewusst, und habe es auch so ersetzt, funktioniert aber nicht! Habe die Beschreibung vielleicht ein bisschen falsch formuliert.

    Also ich versuche es nochmals:
    Wenn ich es so stehen lassen, wie im ersten Posting, dann funktioniert es! Wenn ich aber die Zeile mit mydocuments ersetze mit originale = C:\temp\test hat es nicht funktioniert!

    Aber nun mit dem Tipp von JanaS funktioniert es.
    Danke für Eure Hilfe.

    Greetings Weissertiger
     
Die Seite wird geladen...

Backup VBS läuft nicht - Ähnliche Themen

Forum Datum
Backup auf Festplatte Windows 8 Forum Samstag um 18:07 Uhr
Backupsoftware gesucht. Software: Empfehlungen, Gesuche & Problemlösungen 7. Juli 2015
Backup mit XCOPY (nur geänderte, neuere Dateien) Windows XP Forum 8. Mai 2015
2 Backup (zur Sicherheit) Windows Server-Systeme 25. Apr. 2015
Systemwiederherstellung mit Windowsimagebackup Windows 8 Forum 21. Apr. 2015