Usb Backup

  • müsste nochmals eure Hilfe in Anspruch nehmen. Wenn ich das Script starte, wird der Stick erkannt und soll alle Dateien & Ordner auf díe Festplatte in einen Backup Ordner kopieren. In der MsgBox werden die Files angezeigt, aber kopiert wird nichts. Das ganze sollte noch in einer Schleife liegen, auch wenn kein Stick drinn ist.´Hoffentlioch hat da einer ne Lösung.

  • [autoit]


    $stick = DriveGetDrive("REMOVABLE")

    [/autoit][autoit][/autoit][autoit]

    DirCreate("UsbBackup") ; erzeugt einen Ordner, aber wo ? Im aktuellen Arbeitsverzeichnis ?

    [/autoit][autoit][/autoit][autoit]

    If $stick[0] <> 0 Then
    For $i = 1 To $stick[0] ; durchläuft alle Wechseldatenträger, nicht nur den der angesteckt ist
    $datei = FileFindFirstFile($stick[$i] & "*"); öffnet auf jedem Datenträger ein Handle in der gleichen Variable, wobei nur das letzte überbleibt
    Next
    EndIf

    [/autoit][autoit][/autoit][autoit]

    While 1
    $file = FileFindNextFile($datei); durchläuft das LETZTE Such-Handle
    If @error Then ExitLoop ; und bricht am letzten Objekt des Ordners ab
    DirMove($file, "UsbBackup"); verschiebt nur Ordner incl. Sub/Files - aber keine Datei-Objekte direkt
    MsgBox(0, "", $file, 1)
    WEnd

    [/autoit]

    Ich glaube das sind so viele Probleme drin, das man das ganze neu aufbauen sollte. Ich habe mal einiges im Quellcode kommentiert...

    Zur Nutzung dieses Forum's, ist ein Übersetzer für folgende Begriffe unerlässlich:

    "On-Bort, weier, verscheiden, schädliges, Butten steyling, näckstet, Parr, Porblem, scripe, Kompletenz, harken, manuel zu extramieren, geckukt, würglich, excell, acces oder Compilevorgeng"

  • [autoit]

    $stickname = "Name des USB-Sticks" ; zum erkennen welcher Stick
    $stick = DriveGetDrive("REMOVABLE")

    [/autoit][autoit][/autoit][autoit]

    If Not FileExists(@ScriptDir & "\UsbBackup") Then DirCreate(@ScriptDir & "\UsbBackup")

    [/autoit][autoit][/autoit][autoit]

    If $stick[0] <> 0 Then
    For $i = 1 To $stick[0]
    If DriveGetLabel($stick[$i]) = $stickname Then ; meinen USB-Stick erkannt
    $search = FileFindFirstFile($stick[$i] & "*")
    While True
    $object = FileFindNextFile($search)
    If @error Then ExitLoop
    If StringInStr(FileGetAttrib($stick[$i] & "\" & $object),"D") > 0 Then ; Ordner erkannt
    DirCopy($stick[$i] & "\" & $object, @ScriptDir & "\UsbBackup\" & $object) ; hier ggf. ",1" wenn überschrieben werden soll
    Else
    FileCopy($stick[$i] & "\" & $object, @ScriptDir & "\UsbBackup\" & $object) ; hier ggf. auch ",1"
    EndIf
    Wend
    FileClose($search)
    EndIf
    Next
    EndIf

    [/autoit]

    So könnte es klappen !

    Zur Nutzung dieses Forum's, ist ein Übersetzer für folgende Begriffe unerlässlich:

    "On-Bort, weier, verscheiden, schädliges, Butten steyling, näckstet, Parr, Porblem, scripe, Kompletenz, harken, manuel zu extramieren, geckukt, würglich, excell, acces oder Compilevorgeng"

  • Einfachste Art:

    Am Anfang des Scripts "While True" und am Ende "Wend".

    Schon läuft es endlos. Ist aber dann auch nur noch mit Taskmanager zu beenden. Und Du solltest noch ein geringes "Sleep()" in die "While-Wend-Schleife" nehmen, da sonst die Schleife, sollte kein USB-Stick zum Kopieren erkannt werden, zu schnell/oft läuft und den Rechner stark auslastet.

    Zur Nutzung dieses Forum's, ist ein Übersetzer für folgende Begriffe unerlässlich:

    "On-Bort, weier, verscheiden, schädliges, Butten steyling, näckstet, Parr, Porblem, scripe, Kompletenz, harken, manuel zu extramieren, geckukt, würglich, excell, acces oder Compilevorgeng"

  • der Gedanke ist mir ja auch schon gekommen, wenn ich das Script starte kommt hier bei raus.

    C:\Documents and Settings\.........\U1.au3 (6) : ==> Subscript used with non-Array variable.:

    dan´n muss aber die erste Zeile auch geändert werden

    von IF $stick[0] <> 0 Then nach IF $stick <> 0 Then

    so gehts ohne Fehler.

  • von IF $stick[0] <> 0 Then nach IF $stick <> 0 Then

    Besser :

    [autoit]

    If IsArray($stick) Then

    [/autoit]

    Zur Nutzung dieses Forum's, ist ein Übersetzer für folgende Begriffe unerlässlich:

    "On-Bort, weier, verscheiden, schädliges, Butten steyling, näckstet, Parr, Porblem, scripe, Kompletenz, harken, manuel zu extramieren, geckukt, würglich, excell, acces oder Compilevorgeng"