Ordner kopieren

  • VBScript

Es gibt 4 Antworten in diesem Thema. Der letzte Beitrag () ist von ZdeathZ.

    Ordner kopieren

    Hallo,

    ich bin mal wieder ein wenig am Basteln ^^ ich möchte einen Ordner mit allen enthalten Ordnen inklusive den dazugehörigen Datein kopieren. Der Kopiervorgang funktioniert soweit auch, allerdings kopiert er nicht die Unterordner, sondern lediglich die enthaltenen Datein. Dabei sollte er eigentlich die gesamte Ordnerstruktur kopieren. Ich hoffe, Ihr könnt mir helfen..

    Visual Basic-Quellcode

    1. Dim dateisystem, ordner, pfad, unterverzeichnis
    2. pfad = "D:\Ordner"
    3. set dateisystem = CreateObject("Scripting.FileSystemObject")
    4. Set ordner = dateisystem.GetFolder(pfad)
    5. WScript.Echo pfad
    6. For Each unterverzeichnis In ordner.SubFolders
    7. unterverzeichnis.Copy "E:\Test",True
    8. Next


    Vielen Dank für eure Bemühungen.
    Hallo petaod,

    der Tipp mittels Rekursion hat wunderbar funktioniert, vielen Dank an dieser Stelle :D
    ich habe nun aber wieder ein "erneutes" Problem ^^
    Ich möchte nun alle Ordner unter Laufwerk C:\ auflisten, dies funktioniert dank Rekursion soweit wunderbar..
    Allerdings sind beispielsweise Ordner vorhanden wie "Dokumente und Einstellungen" auf denen mit der Zugriff seitens Windows verwehrt ist. Welche Möglichkeit besteht, diese Ordner auszuschließen ?

    Visual Basic-Quellcode

    1. On Error Resume Next
    2. 'Festlegen der Variablen
    3. Dim such_ordner, dateisystem, verzeichnis, UnterVerzeichnis, datei_schreiben, log_datei, log_datei_schreiben, Log, datei
    4. such_ordner = "C:\"
    5. 'Schreiben der Log-Datei
    6. Set log_datei = CreateObject("Scripting.FileSystemObject")
    7. Set log_datei_schreiben = log_datei.CreateTextFile("D:\log.txt")
    8. 'Prozedur zur Auflistung des Verzeichnisbaums
    9. Sub Verzeichnisliste(Verzeichnisname)
    10. Set dateisystem = CreateObject("Scripting.FileSystemObject")
    11. 'Überprüfen ob es Verzeichnisse gibt
    12. If dateisystem.FolderExists(Verzeichnisname) Then
    13. Set verzeichnis = dateisystem.GetFolder(Verzeichnisname)
    14. 'Durchsuchen der Unterverzeichnisse
    15. For Each UnterVerzeichnis In verzeichnis.subfolders
    16. log_datei_schreiben.WriteLine(UnterVerzeichnis)
    17. WScript.echo UnterVerzeichnis.Path
    18. Verzeichnisliste UnterVerzeichnis
    19. Next
    20. End If
    21. End Sub
    22. Verzeichnisliste such_ordner


    ich hätte eventuell daran gedacht:

    Visual Basic-Quellcode

    1. For Each UnterVerzeichnis In verzeichnis.subfolders
    2. If UnterVerzeichnis.Attributes <> 64 Then
    3. log_datei_schreiben.WriteLine(UnterVerzeichnis)
    4. WScript.echo UnterVerzeichnis.Path
    5. Verzeichnisliste UnterVerzeichnis
    6. End If
    7. Next
    8. End If
    9. End Sub


    Jedoch funktioniert dies nicht :(
    Ich konnte das Problem lösen. Falls Interesse besteht, hier mein kurzer Lösungsansatz:
    Ich habe mir mittels eines Skriptes die Verzeichnisseigenschaften des Ordners auslesen lassen, wo er immer stehen geblieben ist. Dabei habe ich herausgefunden, das der Ordner das Attribut 1046 besitzt.
    Dies in der Zeile

    Visual Basic-Quellcode

    1. If UnterVerzeichnis.Attributes <> 1046 Then
    eingetragen und das gewünschte Ergebnis war vorhanden.
    Hallo Forumgemeinde,

    ich bin zum wiederholten mal am verzweifeln ^^ Ich durchsuche eine Verzeichnisstruktur und möchte alle Ordner inklusive Unterordner kopieren. Ich habe dazu auch schon ein Skrip geschrieben, welches noch nicht 100% funktioniert. :(

    Visual Basic-Quellcode

    1. 'Festlegen der Variablen
    2. Dim pfad, verzeichnis, unterverzeichnis, fso
    3. 'Zurodnung der Variablen
    4. pfad = "D:Test\"
    5. 'Prozedur zum Durchsuchen der Verzeichnisse
    6. Sub verzeichnis_durchsuchen (verzeichnispfad)
    7. Set fso = CreateObject("Scripting.FileSystemObject")
    8. If fso.FolderExists(verzeichnispfad) Then
    9. Set verzeichnis = fso.GetFolder(verzeichnispfad)
    10. For Each unterverzeichnis In verzeichnis.SubFolders
    11. If unterverzeichnis.Attributes <> 1046 And unterverzeichnis.Attributes <> 22 Then
    12. WScript.Echo unterverzeichnis.Path
    13. unterverzeichnis.Copy "D:\Test2",vbYes
    14. verzeichnis_durchsuchen unterverzeichnis
    15. End If
    16. Next
    17. End If
    18. End Sub
    19. verzeichnis_durchsuchen (pfad)


    Er kopiert leider immer nur das letzte Verzeichnis im Pfad. Ich möchte gerne, dass er den kompletten Pfad anlegt.

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „ZdeathZ“ ()