tutorials.de Buch-Aktion 05/2012
Seite 1 von 2 12 LetzteLetzte
ERLEDIGT
NEIN
ANTWORTEN
15
ZUGRIFFE
946
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    gigalogisch gigalogisch ist offline Mitglied Bronze
    Registriert seit
    Aug 2005
    Beiträge
    28
    Hallo Leute,

    ich muss ehrlich gestehen, dass ich "eigentlich" von VBScript keine Ahnung hab. Ich komme von PHP - darum kann ich ein paar Dinge nachvollziehen.
    Ich bin also am "zusammenkopieren" verschiedener Codeschnippsel. Und im Endeffekt möchte ich erreichen, dass mir das VB-Script meine komplette Partition D auf eine externe Festplatte, Laufwerkbuchstabe M kopiert. Vorher soll der Backup-Ordner gelöscht werden, damit eine z. B. umbenannte Datei 2x auftaucht.

    So wie ich das bis jetzt habe, kann ich leider nur einzelne Ordner kopieren. Natürlich könnte ich jetzt für jeden einzelnen Ordner ein einzelnes Script schreiben, aber was mach ich wenn ein neuer dazukommt. Ich denke, ihr wisst was ich meine

    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    
    Set DateiSystem = CreateObject("Scripting.FileSystemObject")
    backup_ziel = "M:\Daten (D)"
    backup_quelle = "D:\Word"
    set fs = createObject("Scripting.filesystemobject")
    fs.deletefolder backup_ziel
    If Not DateiSystem.FolderExists(backup_ziel) Then
    DateiSystem.CreateFolder backup_ziel
    End If
    Set Ordner = DateiSystem.GetFolder(backup_quelle)
    Ordner.Copy backup_ziel, true
    MsgBox "Das Backup wurde erfolgreich durchgeführt!",,"Backup Erfolg"

    Ich hab für die Variable backup_quelle auch schon "D", "D:" und "D:\" probiert, funktioniert aber leider nicht.

    Vielen Dank

    Willi
     

  2. #2
    Avatar von mage
    mage mage ist offline Mitglied Platin
    Registriert seit
    May 2002
    Ort
    Berliner Speckgürtel
    Beiträge
    707
    Probier mal CopyFolder
    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    
    Recursively copies a folder from one location to another.
     
    object.CopyFolder ( source, destination[, overwrite] );
    Arguments
    object 
    Required. Always the name of a FileSystemObject. 
    source 
    Required. Character string folder specification, which can include wildcard characters, for one or more folders to be copied. 
    destination 
    Required. Character string destination where the folder and subfolders from source are to be copied. Wildcard characters are not allowed. 
    overwrite 
    Optional. Boolean value that indicates if existing folders are to be overwritten. If true, files are overwritten; if false, they are not. The default is true. 
    Remarks
    Wildcard characters can only be used in the last path component of the source argument. For example, you can use: 
     
    [JScript]
    fso = new ActiveXObject("Scripting.FileSystemObject");
    fso.CopyFolder ("c:\\mydocuments\\letters\\*", "c:\\tempfolder\\")
    [VBScript]
    FileSystemObject.CopyFolder "c:\mydocuments\letters\*", "c:\tempfolder\"
    But you cannot use: 
     
    [JScript]
    fso = new ActiveXObject("Scripting.FileSystemObject");
    fso.CopyFolder ("c:\\mydocuments\\*\\*", "c:\\tempfolder\\")
    [VBScript]
    FileSystemObject.CopyFolder "c:\mydocuments\*\*", "c:\tempfolder\"
    If source contains wildcard characters or destination ends with a path separator (\), it is assumed that destination is an existing folder in which to copy matching folders and subfolders. Otherwise, destination is assumed to be the name of a folder to create. In either case, four things can happen when an individual folder is copied. 
     
    If destination does not exist, the source folder and all its contents gets copied. This is the usual case. 
    If destination is an existing file, an error occurs. 
    If destination is a directory, an attempt is made to copy the folder and all its contents. If a file contained in source already exists in destination, an error occurs if overwrite is false. Otherwise, it will attempt to copy the file over the existing file. 
    If destination is a read-only directory, an error occurs if an attempt is made to copy an existing read-only file into that directory and overwrite is false. 
    An error also occurs if a source using wildcard characters doesn't match any folders.
     
    The CopyFolder method stops on the first error it encounters. No attempt is made to roll back any changes made before an error occurs.
     
    Allen ist das Denken erlaubt, vielen bleibt es erspart. (Kurt Goetz)

  3. #3
    gigalogisch gigalogisch ist offline Mitglied Bronze
    Registriert seit
    Aug 2005
    Beiträge
    28
    Hallo Magge,

    danke für die Antwort, ich weiß aber leider nicht, wie ich das jetzt einbinden soll.
    Vielleicht so?

    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    
    Set DateiSystem = CreateObject("Scripting.FileSystemObject")
    backup_ziel = "M:\Daten (D)"
    backup_quelle = "D:\Word"
    set fs = createObject("Scripting.filesystemobject")
    fs.deletefolder backup_ziel
    If Not DateiSystem.FolderExists(backup_ziel) Then
    DateiSystem.CreateFolder backup_ziel
    End If
    Set Ordner = DateiSystem.GetFolder(backup_quelle)
    FileSystemObject.CopyFolder backup_quelle, backup_ziel
    MsgBox "Das Backup wurde erfolgreich durchgeführt!",,"Backup Erfolg"

    Funkt nur leider nicht
    Er sagt: Object erforderlich: FileSystemObject in Zeile 10

    Hast du - oder auch andere - noch eine Idee, oder mache ich etwas falsch?

    Danke

    Willi
     

  4. #4
    Avatar von mage
    mage mage ist offline Mitglied Platin
    Registriert seit
    May 2002
    Ort
    Berliner Speckgürtel
    Beiträge
    707
    Die Fehlermeldung besagt das ein Objekt von Typ "FileSystemObject" benötigt wird.
    Das hast du mit deiner Variable fs schon instanziiert.

    Der Aufruf sollte dann also fs.CopyFolder .. lauten
     
    Allen ist das Denken erlaubt, vielen bleibt es erspart. (Kurt Goetz)

  5. #5
    gigalogisch gigalogisch ist offline Mitglied Bronze
    Registriert seit
    Aug 2005
    Beiträge
    28
    Hallo,

    danke - aber leider kann ich mit dieser Funktion auch nicht alle Ordner einer Partition kopieren
    Hab es auch diesmal wieder mit "D", "D:" und "D:\" probiert, was aber nicht zum Erfolg führte.
    Oder kann es sein, dass es gar nicht geht?

    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    
    Set DateiSystem = CreateObject("Scripting.FileSystemObject")
    backup_ziel = "M:\Daten (D)"
    backup_quelle = "D:\"
    set fs = createObject("Scripting.filesystemobject")
    fs.deletefolder backup_ziel
    If Not DateiSystem.FolderExists(backup_ziel) Then
    DateiSystem.CreateFolder backup_ziel
    End If
    Set Ordner = DateiSystem.GetFolder(backup_quelle)
    fs.CopyFolder backup_quelle, backup_ziel
    MsgBox "Das Backup wurde erfolgreich durchgeführt!",,"Backup Erfolg"

    Danke noch mal

    Willi
     

  6. #6
    Avatar von Shakie
    Shakie Shakie ist offline Mitglied Diamant
    Registriert seit
    May 2004
    Ort
    Europa
    Beiträge
    2.048
    Was kommt denn für ein Fehler? Eventuel must du die Pfadangabe in Anführungszeichen übergeben:
    Code :
    1
    
    backup_ziel = """M:\Daten (D)"""
     
    hihi = -h²

  7. #7
    gigalogisch gigalogisch ist offline Mitglied Bronze
    Registriert seit
    Aug 2005
    Beiträge
    28
    Laufzeitfehler in Zeile 10, Zeichen 1
    Ungültiger Prozeduraufruf oder ungültiges Argument.

    Wenn ich natürlich z. B. "D:\Word" angebe, alles einwandfrei... Er will mir nur nicht die gesamte Partition also "D:\" annehmen.

    Danke
     

  8. #8
    Avatar von mage
    mage mage ist offline Mitglied Platin
    Registriert seit
    May 2002
    Ort
    Berliner Speckgürtel
    Beiträge
    707
    Wie wärs mit "D:\*" ?
     
    Allen ist das Denken erlaubt, vielen bleibt es erspart. (Kurt Goetz)

  9. #9
    gigalogisch gigalogisch ist offline Mitglied Bronze
    Registriert seit
    Aug 2005
    Beiträge
    28
    Nein, funktioniert auch nicht...

    Willi
     

  10. #10
    Avatar von Shakie
    Shakie Shakie ist offline Mitglied Diamant
    Registriert seit
    May 2004
    Ort
    Europa
    Beiträge
    2.048
    Also bei mir funktioniert es mit "D:\*" einwandfrei. Hab es aber in VB und nicht in VBS ausprobiert.
     
    hihi = -h²

  11. #11
    gigalogisch gigalogisch ist offline Mitglied Bronze
    Registriert seit
    Aug 2005
    Beiträge
    28
    Kann ich das auch in VB probieren?
    Wie geht das?

    Willi
     

  12. #12
    Avatar von Shakie
    Shakie Shakie ist offline Mitglied Diamant
    Registriert seit
    May 2004
    Ort
    Europa
    Beiträge
    2.048
    Dazu musst du erst unter Projekt-->Verweise einen Verweis auf "Microsoft Sripting Runtime" setzen.
    Danach kannst du beispielsweise so vorgehen:
    Code :
    1
    2
    3
    
    Dim fso As Scripting.FileSystemObject
    fso = New Scripting.FileSystemObject
    fso.CopyFolder "d:\*", "Z:\Backup\"
     
    hihi = -h²

  13. #13
    gigalogisch gigalogisch ist offline Mitglied Bronze
    Registriert seit
    Aug 2005
    Beiträge
    28
    Hallo,

    Benötigt es da ein Programm?
    Wo krieg ich das her?
    Im Quelltext kann ich das nicht bestimmen oder durch eine andere Dateiendung?

    Danke - tut mir leid, dass ich so blöd frage

    Willi
     

  14. #14
    Avatar von Shakie
    Shakie Shakie ist offline Mitglied Diamant
    Registriert seit
    May 2004
    Ort
    Europa
    Beiträge
    2.048
    Du musst natürlich Visual Basic installiert haben.
    Der Unterschied von VB zu VBS ist, dass man mit VB richtige Exe-Dateien erstellt, während man bei VBS ja bloß eine Datei hat, deren Quellcode jeder mit einem Texteditor anschauen kann.
     
    hihi = -h²

  15. #15
    Avatar von mage
    mage mage ist offline Mitglied Platin
    Registriert seit
    May 2002
    Ort
    Berliner Speckgürtel
    Beiträge
    707
    Visual Basic (VB) muss man kaufen, entweder einzeln oder in Visual Studio 6. Aber ich bezweifle das noch erwerbar ist.
     
    Allen ist das Denken erlaubt, vielen bleibt es erspart. (Kurt Goetz)

Ähnliche Themen

  1. 2xVista auf einer Partition
    Von 08154711 im Forum Hardware
    Antworten: 6
    Letzter Beitrag: 07.03.08, 20:21
  2. Antworten: 2
    Letzter Beitrag: 08.06.06, 21:28
  3. Antworten: 1
    Letzter Beitrag: 28.01.06, 19:40
  4. HD-Partition einer anderen unterordnen.
    Von tittli im Forum Microsoft Windows
    Antworten: 5
    Letzter Beitrag: 14.08.05, 18:18
  5. 2 Fragen zu einer Backup-Lösung
    Von Iceman8712 im Forum Linux & Unix
    Antworten: 3
    Letzter Beitrag: 26.07.05, 09:43