Fragen zur Datensicherung

  • OK, dann lass ich die Tastenkombination weg. Ist auch nicht schlimm

    Zitat

    Original von Flamefire

    [autoit]


    Dim $array[3]
    For $i=0 to 2
    $array[$i]=1
    next

    [/autoit]

    Hm,
    was genau ist eigentlich ein Array?
    Könntest du mir bitte die Zeilen mit dem Array genau erklären, was dies bedeutet?

    Danke ;)

  • Danke, das habe ich gesucht.
    Hatte leider nur im Forum gesucht :irre:

    So hab nun noch mal zur besseren ÜBersicht mein ganzes Script gepostet. Müsste alles funktionieren.

    Danke an alle, die soviel Geduld mit mir hatten.
    Danke :musik2: :musik2: :musik2:

    Spoiler anzeigen
    [autoit]

    #include <Date.au3>
    #include <Misc.au3>
    Dim $Quell_Pf_[3][2] ; [n][0] = Pfad; [n][1] = gerundete Größe
    Dim $goOut = 0
    Dim $Ziel_Pf_[3]

    $start = 0
    $ende = 2

    ;Datumsoptionen
    $iWeekday = _DateToDayOfWeek(@YEAR, @MON, @MDAY)
    $sNewDate = _DateAdd('d', 0, _NowCalcDate())
    $sNewDate = StringReplace($sNewDate, "/", ".")

    ;Quellpfad <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< evtl. ändern >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
    $Quell_LW = "E:\"
    $Quell_Pf_[0][0] = $Quell_LW & "Adressbuch"
    $Quell_Pf_[1][0] = $Quell_LW & "Favoriten"
    $Quell_Pf_[2][0] = $Quell_LW & "E-Mails"

    ;Zielpfad <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< evtl. ändern >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
    $Ziel_LW = "V:\"
    $Ziel_Pf = $Ziel_LW & "Sicherung Internet\" & $sNewDate
    $Ziel_Pf_[0] = $Ziel_Pf & "\Adressbuch"
    $Ziel_Pf_[1] = $Ziel_Pf & "\Favoriten"
    $Ziel_Pf_[2] = $Ziel_Pf & "\E-Mails"

    _check()

    Func _check()
    ;Ziellaufwerk vorhanden?
    If FileExists($Ziel_LW) Then
    $tmp = 0
    For $i = $start to $ende ;Quellverzeichnisse vorhanden?
    If Not FileExists($Quell_Pf_[$i][0]) Then
    MsgBox(0, "Quellordner fehlt", "Der Ordner " & $Quell_Pf_[$i][0] & " existiert nicht. Bitte kontrollieren")
    $goOut = 1
    Else ; Speicherplatz ermitteln und runden
    $Quell_Pf_[$i][1] = Round((DirGetSize($Quell_Pf_[$i][0])/1024 / 1024), 0)
    $tmp +=($Quell_Pf_[$i][1]) ; Größe zusammenrechnen
    EndIf
    Next

    If $goOut = 1 Then Exit
    $Ziel_LW_Gr_Ru = Round(DriveSpaceFree($Ziel_LW), 0)

    ;Größe Speicherplatz Vergleich
    If $tmp > $Ziel_LW_Gr_Ru Then
    Msgbox(0,"Zu wenig Speicherplatz vorhanden","Geben Sie mindestens " & $tmp - $Ziel_LW_Gr_Ru & " MB Speicherplatz auf " & $Ziel_LW & " frei")
    Exit
    Else
    ;Info-Fenster einblenden
    SplashTextOn("Datensicherung Internet", "Sicherung läuft - Bitte warten", 250, 30, -1, -1, 0)

    ;zu kopierende Ordner
    For $i = $start to $ende
    DirCopy($Quell_Pf_[$i][0], $Ziel_Pf_[$i], 1)
    Next
    EndIf
    Else
    $ret = MsgBox(5 + 64, "Datensicherung Internet", "Ziellaufwerk " & $Ziel_LW & " nicht vorhanden")
    If $ret = 4 Then
    _check()
    Else
    EndIf
    EndIf
    EndFunc ;==>_check

    ;Info-Fenster ausblenden
    SplashOff()

    [/autoit]
  • wie gesagt: such mal meinen Thread zum installieren...da hab ich sowas drin...dann geht auch der Hotkey...

    noch was: so gehts besser (splashoff() woanders hin)

    Spoiler anzeigen
    [autoit]

    #include <Date.au3>
    #include <Misc.au3>
    Dim $Quell_Pf_[3][2] ; [n][0] = Pfad; [n][1] = gerundete Größe
    Dim $goOut = 0
    Dim $Ziel_Pf_[3]

    $start = 0
    $ende = 2

    ;Datumsoptionen
    $iWeekday = _DateToDayOfWeek(@YEAR, @MON, @MDAY)
    $sNewDate = _DateAdd('d', 0, _NowCalcDate())
    $sNewDate = StringReplace($sNewDate, "/", ".")

    ;Quellpfad <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< evtl. ändern >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
    $Quell_LW = "E:\"
    $Quell_Pf_[0][0] = $Quell_LW & "Adressbuch"
    $Quell_Pf_[1][0] = $Quell_LW & "Favoriten"
    $Quell_Pf_[2][0] = $Quell_LW & "E-Mails"

    ;Zielpfad <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< evtl. ändern >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
    $Ziel_LW = "V:\"
    $Ziel_Pf = $Ziel_LW & "Sicherung Internet\" & $sNewDate
    $Ziel_Pf_[0] = $Ziel_Pf & "\Adressbuch"
    $Ziel_Pf_[1] = $Ziel_Pf & "\Favoriten"
    $Ziel_Pf_[2] = $Ziel_Pf & "\E-Mails"

    _check()

    Func _check()
    ;Ziellaufwerk vorhanden?
    If FileExists($Ziel_LW) Then
    $tmp = 0
    For $i = $start to $ende ;Quellverzeichnisse vorhanden?
    If Not FileExists($Quell_Pf_[$i][0]) Then
    MsgBox(0, "Quellordner fehlt", "Der Ordner " & $Quell_Pf_[$i][0] & " existiert nicht. Bitte kontrollieren")
    $goOut = 1
    Else ; Speicherplatz ermitteln und runden
    $Quell_Pf_[$i][1] = Round((DirGetSize($Quell_Pf_[$i][0])/1024 / 1024), 0)
    $tmp +=($Quell_Pf_[$i][1]) ; Größe zusammenrechnen
    EndIf
    Next

    If $goOut = 1 Then Exit
    $Ziel_LW_Gr_Ru = Round(DriveSpaceFree($Ziel_LW), 0)

    ;Größe Speicherplatz Vergleich
    If $tmp > $Ziel_LW_Gr_Ru Then
    Msgbox(0,"Zu wenig Speicherplatz vorhanden","Geben Sie mindestens " & $tmp - $Ziel_LW_Gr_Ru & " MB Speicherplatz auf " & $Ziel_LW & " frei")
    Exit
    Else
    ;Info-Fenster einblenden
    SplashTextOn("Datensicherung Internet", "Sicherung läuft - Bitte warten", 250, 30, -1, -1, 0)

    ;zu kopierende Ordner
    For $i = $start to $ende
    DirCopy($Quell_Pf_[$i][0], $Ziel_Pf_[$i], 1)
    Next
    ;Info-Fenster ausblenden
    SplashOff()
    EndIf
    Else
    $ret = MsgBox(5 + 64, "Datensicherung Internet", "Ziellaufwerk " & $Ziel_LW & " nicht vorhanden")
    If $ret = 4 Then
    _check()
    Else
    EndIf
    EndIf
    EndFunc ;==>_check

    [/autoit]

    Einmal editiert, zuletzt von Flamefire (19. April 2007 um 14:43)

  • ... und weiter gehts.

    Flamefire hat mich auf eine neue Idee gebracht.

    Ich habe nun ein Kopierfenster mit drinnen, dort kann ich dann jederzeit auf abbrechen klicken

    Hab die Funktion von th.meger übernommen :klatschen:
    Kopieren von Dateien -> Restdauer anzeigen?

    Spoiler anzeigen
    [autoit]

    ;----------------------------------------------------------------
    ;Durch dieses Script können Dateien und Ordner gesichert werden
    ; - Ziellaufwerk vorhanden?
    ; - Quellverzeichnisse vorhanden?
    ; - genügend freier Speicher auf dem Ziellaufwerk?
    ;----------------------------------------------------------------

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

    #include <Date.au3>
    #include <Misc.au3>

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

    ;Den Wert in der ersten [] muß der Anzahl der zu kopierenden Ordnern entsprechen
    Dim $Quell_Pf_[3][2] ; [n][0] = Pfad; [n][1] = gerundete Größe

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

    Dim $goOut = 0

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

    ;Der Start-Wert ist die Zahl des ersten Ordners
    $start = 0

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

    ;Der Ende-Wert ist die Zahl des letzten Ordners
    $ende = 2

    ;Datumsoptionen
    $iWeekday = _DateToDayOfWeek(@YEAR, @MON, @MDAY)
    $sNewDate = _DateAdd('d', 0, _NowCalcDate())
    $sNewDate = StringReplace($sNewDate, "/", ".")

    ;Quellpfade anpassen
    $Quell_LW = "E:\"
    $Quell_Pf_[0][0] = $Quell_LW & "Adressbuch"
    $Quell_Pf_[1][0] = $Quell_LW & "Favoriten"
    $Quell_Pf_[2][0] = $Quell_LW & "E-Mails"

    ;Zielpfade anpassen
    $Ziel_LW = "D:\"
    $Ziel_Pf = $Ziel_LW & "Sicherung Internet\" & $sNewDate

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

    ;AB HIER KEINE ANPASSUNG MEHR NOTWENDIG!!!!!!!!!!!!!!!
    ;----------------------------------------------------------------

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

    _check()

    Func _check()
    ;Prüfung Ziellaufwerk vorhanden?
    If FileExists($Ziel_LW) Then ;Prüfung Quellverzeichnisse vorhanden?
    $tmp = 0
    For $i = $start to $ende
    If Not FileExists($Quell_Pf_[$i][0]) Then ;Fenster Quellordner fehlt
    MsgBox(0, "Quellordner fehlt", "Der Ordner " & $Quell_Pf_[$i][0] & " existiert nicht. Bitte kontrollieren")
    $goOut = 1
    Else ;Speicherplatz ermitteln und runden
    $Quell_Pf_[$i][1] = Round((DirGetSize($Quell_Pf_[$i][0])/1024 / 1024), 0)
    $tmp +=($Quell_Pf_[$i][1]) ;Größe zusammenrechnen
    EndIf
    Next

    If $goOut = 1 Then Exit ;Quellordner fehlt, dann Script beenden
    $Ziel_LW_Gr_Ru = Round(DriveSpaceFree($Ziel_LW), 0)

    ;Funktion Größenvergleich der Quellverzeichnisse mit dem Ziellaufwerk
    If $tmp > $Ziel_LW_Gr_Ru Then ;Fenster zu wenig Speicherplatz
    Msgbox(0,"Zu wenig Speicherplatz vorhanden","Geben Sie mindestens " & $tmp - $Ziel_LW_Gr_Ru & " MB Speicherplatz auf " & $Ziel_LW & " frei")
    Exit
    Else ;Alles OK, Start-Info-Fenster einblenden
    SplashTextOn("Datensicherung Internet", "Sicherung läuft - Bitte warten", 250, 30, -1, -1, 0)

    ;Alles OK, Datensicherung beginnt
    For $i = $start to $ende
    _FileCopy($Quell_Pf_[$i][0], $Ziel_Pf)
    Next
    SplashOff() ;Datensicherung beendet, Info-Fenster ausblenden, Script beenden
    EndIf
    Else ;Fenster Ziellaufwerk fehlt
    $ret = MsgBox(5 + 64, "Datensicherung Internet", "Ziellaufwerk " & $Ziel_LW & " nicht vorhanden")
    If $ret = 4 Then ;Wiederholen wurde ausgewählt, Funktion startet von vorne
    _check()
    Else ;Abbrechen wurde ausgewählt, dann Script beenden
    EndIf
    EndIf
    EndFunc ;==>_check

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

    EXIT ;Scrpit beenden

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

    Func _FileCopy($fromFile,$tofile)
    DirCreate($Ziel_Pf)
    Local $FOF_RESPOND_YES = 16
    Local $FOF_SIMPLEPROGRESS = 512
    $winShell = ObjCreate("shell.application")
    $winShell.namespace($tofile).CopyHere($fromFile,$FOF_RESPOND_YES)
    EndFunc ;==>_FileCopy

    [/autoit]

    Wie genau muß ich dies anwenden. Hab leider dazu keine Hilfe gefunden. Deutsche ÜBersetzung?

    [autoit]

    ;~ 4 Do not display a progress dialog box.
    ;~ 8 Give the file being operated on a new name in a move, copy, or rename operation if a file with the target name already exists.
    ;~ 16 Respond with "Yes to All" for any dialog box that is displayed.
    ;~ 64 Preserve undo information, if possible.
    ;~ 128 Perform the operation on files only if a wildcard file name (*.*) is specified.
    ;~ 256 Display a progress dialog box but do not show the file names.
    ;~ 512 Do not confirm the creation of a new directory if the operation requires one to be created.
    ;~ 1024 Do not display a user interface if an error occurs.
    ;~ 2048 Version 4.71. Do not copy the security attributes of the file.
    ;~ 4096 Only operate in the local directory. Don't operate recursively into subdirectories.
    ;~ 9182 Version 5.0. Do not copy connected files as a group. Only copy the specified files.

    [/autoit]


    Was noch nicht funktioniert:
    Wenn ich im Kopierfenster auf abbrechen klicken, fängt das kopieren wieder an.
    Dies ist auch logisch, da ja alle 3 Ordner in einer Schleife kopiert werden.

    Wie kann ich das abbrechen ansprechen, dass dann auch die Schleife aufhört?

    • Offizieller Beitrag

    Hab mal ne Übersetzung gemacht.
    Anwendung: die Werte für die gewünschten Optionen zusammenrechnen und der Funktion übergeben.

  • Hm,
    ist es eigentlich möglich mit dieser Kopierfunktion einen Ordner auszuschließen, damit dieser nicht mitkopiert wird?

    Zum kopieren habe ich diese Funktion

    [autoit]

    Func _FileCopy($fromFile,$tofile)
    DirCreate($Ziel_Pf)
    Local $FOF_RESPOND_YES = 16
    Local $FOF_SIMPLEPROGRESS = 512
    $winShell = ObjCreate("shell.application")
    $winShell.namespace($tofile).CopyHere($fromFile,$FOF_RESPOND_YES)
    EndFunc ;==>_FileCopy

    [/autoit]