FileCopy() alle Dateien

  • Hallo zusammen,

    nach langem muss ich mal wieder was in au3 schreiben, da wir auf Arbeit aber momentan viel zutun haben, benötige ich Hilfe bei einem einfachen Programm.

    Es geht darum, dass wir nach einem Rechnertausch schnell die Daten per Script auf den neuen Rechner übertragen wollen. Dafür wird auf dem alten Rechner der neue als Laufwerk eingebunden. Funktioniert alles problemlos.

    Nun ist es aber so, dass bei der Datenübertragung immer ein Fehler auftritt. Wahrscheinlich ist es ein Anfängerfehler, aber ich komme leider trotzdem nicht weiter.

    Hier einmal das Script ab dem Zeitpunkt des Fehlers:

    Auf die einzelnen Ordner hat man Zugriff, auch die Pfade habe ich überprüft, allerdings scheitert das immer wieder aufs neue :(

    Für Hilfe bin ich sehr Dankbar :)

  • Versuche mal :

    AutoIt
    $olddrive = "C:\Users\" & $username
    $newdrive = "A:\"
    If DirCopy($olddrive & "\Desktop", $newdrive & "\Desktop", 1) Then
        GUICtrlSetData($progress,10)
    Else
        MsgBox(16,"Datenübertragunsfehler","Dateien vom Desktop konnten nicht kopiert werden.")
    EndIf

    86598-musashi-c64-png

    "Am Anfang wurde das Universum erschaffen. Das machte viele Leute sehr wütend und wurde allenthalben als Schritt in die falsche Richtung angesehen."

  • Hat leider auch nicht funktioniert. Es kommt wieder eine Fehlermeldung.

    Du hast kein lauffähiges Skript gepostet, sondern nur einen Ausschnitt. Teste mal Folgendes :

    AutoIt
    ;Daten übertragen
    Global $sOlddrive = "C:\Users\" & @Username
    Global $sNewdrive = "D:\Copytest"
    
    If DirCopy($sOlddrive & "\Desktop", $sNewdrive & "\Desktop", 1) Then
        ; Copy OK
    Else
        MsgBox(16,"Datenübertragunsfehler","Dateien vom Desktop konnten nicht kopiert werden.")
    EndIf

    Voraussetzung : Du hast ein Laufwerk D - sonst nehme C:\Copytest

    Ggf. liegt der Fehler im Bereich deiner GUI, also z.B. bei : GUICtrlSetData($progress,10)

    EDIT :

    Du könntest die ganze Struktur wesentlich vereinfachen, indem Du z.B. den variablen Teil der Pfade, also Desktop, Pictures usw. in ein Array schreibst, und dies dann in einer Schleife abarbeitest. Der Fortschrittswert für die Progressbar wäre dann auch berechenbar.

    Gruß Musashi

    86598-musashi-c64-png

    "Am Anfang wurde das Universum erschaffen. Das machte viele Leute sehr wütend und wurde allenthalben als Schritt in die falsche Richtung angesehen."

    Einmal editiert, zuletzt von Musashi (3. November 2017 um 12:44) aus folgendem Grund: Antwort erweitert

  • Ich mache mal einen neuen Beitrag, weil Edits älterer Beiträge gerne übersehen werden !

    EDIT :

    Du könntest die ganze Struktur wesentlich vereinfachen, indem Du z.B. den variablen Teil der Pfade, also Desktop, Pictures usw. in ein Array schreibst, und dies dann in einer Schleife abarbeitest. Der Fortschrittswert für die Progressbar wäre dann auch berechenbar.

    Hier ein Beispiel :

    Das geht natürlich noch eleganter, aber zur Anschauung sollte es reichen ;)

    Gruß Musashi

    86598-musashi-c64-png

    "Am Anfang wurde das Universum erschaffen. Das machte viele Leute sehr wütend und wurde allenthalben als Schritt in die falsche Richtung angesehen."

  • Das kopieren hat leider auch nicht funktioniert...

    Ich poste einmal das komplette Script, vl. hilft das weiter :)

  • Ich danke die vielmals!!

    Durch dein Script bin ich auf den Fehler bei mir gestoßen, die Variable $username war das GUI Control, ich hätte $read_username setzen müssen :D

    Ich werde mir dein Script aber mal genauer anschauen und es dann umsetzen, vielen Dank für deine Unterstützung :)

  • Hallo Jasfar !

    Ich werde mir dein Script aber mal genauer anschauen und es dann umsetzen, vielen Dank für deine Unterstützung

    In meinem groben Beispiel ging es im Wesentlichen erst mal nur darum, dass Du nicht für jedes Verzeichnis einen separaten Kopierbereich benötigst. Mit dem Array und der Schleife geht es kompakter und ist flexibler, trotzdem natürlich nicht die Eleganteste aller Möglichkeiten ;).

    Ich habe mir dein Skript mal angesehen. Vom Aufbau her, speziell bei der GUI-Steuerung, könnte man einiges verbessern, aber solange es läuft, OK ^^

    Bisher bin ich davon ausgegangen, dass der variable Teil des Quell- und Zielverzeichnisses identisch sind. Dies ist aber z.B. Firefox NICHT der Fall, daher wäre ein 2-D Array geeigneter.

    Demo (nur Anzeige) :

    Das läßt sich alles auch kürzer schreiben, aber so ist es für dich ggf. verständlicher.

    Den Fortschrittswert für die Progressbar kannst Du übrigens dynamisch anhand von $iPathCount berechnen.

    Gruß Musashi

    86598-musashi-c64-png

    "Am Anfang wurde das Universum erschaffen. Das machte viele Leute sehr wütend und wurde allenthalben als Schritt in die falsche Richtung angesehen."