Bin grade drüber, mir ein Script zur Datensicherung zu basteln...
Spoiler anzeigen
AutoIt
#include <GUIConstants.au3>
#include <GuiConstantsEx.au3>
#include <WindowsConstants.au3>
#include <Date.au3>
#include <GuiListBox.au3>
#include <APIConstants.au3>
#include <Array.au3>
#include <Debug.au3>
#include <GuiListView.au3>
#include <File.au3>
Global $ini = @ScriptDir & "\datensicherung.ini"
Global $sources = @ScriptDir & "\quellen.ini"
Global $dest_select, $file
$txtg1 = "Info"
$txtg2 = "Pfad-Einstellungen"
; GUI Erstellen
$Form1 = GuiCreate("Datensicherung by ...", 350, 700, -1, -1, "", $WS_EX_TOOLWINDOW )
GUISetFont(9, 1000, 0, "Arial")
$Group1 = GUICtrlCreateGroup($txtg1, 8, 4, 328, 90)
; ### Info ###
; Computernamen ausgeben
GUICtrlCreateLabel("Computername:", 20, 30)
GuiCtrlCreateLabel("" & @ComputerName & "" , 130, 30)
;Benutzernamen ausgeben
GUICtrlCreateLabel("Benutzername:", 20, 50)
GuiCtrlCreateLabel("" & @UserName & "" , 130, 50)
; ### END Info ###
; ### Pfade ###
$Group2 = GUICtrlCreateGroup($txtg2, 8, 100, 328, 600)
; Sicherungspfad
$dest_path = GUICtrlCreateLabel(IniRead($ini, "Einstellungen", "destination", ""), 20, 165, 300, 20) ;Label Destination-Pfad
GUICtrlSetData($dest_select, $dest_path)
$btn_dest= GUICtrlCreateButton("Sicherung Ziel", 20, 130, 150, 25)
; Quelle
$aSource_path = _GUICtrlListBox_Create($Form1, "", 20, 200, 310, 320)
$btn_addfolder = GUICtrlCreateButton("Verzeichnis hinzufügen", 20, 570, 150, 25)
$btn_delfolder = GUICtrlCreateButton("Verzeichnis entfernen", 175, 570, 150, 25)
$btn_sload = GUICtrlCreateButton("Pfade aus Ini laden", 20, 600, 150, 25)
$btn_start = GUICtrlCreateButton("Sicherung starten", 175, 600, 150, 25)
$but_end=GuiCtrlCreateButton("Beenden", 230, 640, 100, 25)
GUISetState ()
While 1
$msg = GUIGetMsg()
Switch $msg
Case $GUI_EVENT_CLOSE
ExitLoop
Case $btn_dest
_destination()
Case $btn_addfolder
_folder_add()
Case $btn_delfolder
_folder_remove()
Case $btn_sload
_load_sources()
Case $btn_start
_filewrite()
_saveini()
_start_copy()
Case $but_end
_quit()
Exit
EndSwitch
Wend
Func _start_copy()
$Countfile= _FileCountLines($sources)
$ziel = IniRead($ini, "Einstellungen", "destination", "")
GUICtrlSetState($btn_start,$GUI_DISABLE)
GUICtrlSetState($btn_dest,$GUI_DISABLE)
GUICtrlSetState($btn_addfolder,$GUI_DISABLE)
GUICtrlSetState($btn_delfolder,$GUI_DISABLE)
GUICtrlSetState($btn_sload,$GUI_DISABLE)
For $i = 1 To $Countfile
$file1 = FileReadLine($sources, $i)
$RoboCopy = RunWait(@ComSpec & " /c " & "robocopy " & $file1 & " " & $ziel & " /FP /S /E /COPY:DAT /ZB /R:0 /W:0", "")
Next
GUICtrlSetState($btn_start,$GUI_ENABLE)
GUICtrlSetState($btn_dest,$GUI_ENABLE)
GUICtrlSetState($btn_addfolder,$GUI_ENABLE)
GUICtrlSetState($btn_delfolder,$GUI_ENABLE)
GUICtrlSetState($btn_sload,$GUI_ENABLE)
EndFunc
Func _load_sources()
$Countfile= _FileCountLines($sources)
$file = $sources
For $i = 1 To $CountFile
$var1= FileReadLine($file, $i)
_GUICtrlListBox_AddString($aSource_path, $var1)
Next
EndFunc
Func _destination()
$dest_select=FileSelectFolder("Ordner auswählen", @HomeDrive, 2, "", $Form1)
GUICtrlSetData($dest_path, $dest_select)
EndFunc
Func _folder_add()
Local $newFolder = FileSelectFolder("Verzeichnis auswählen", @HomeDrive, 2, "" , $Form1)
If _GUICtrlListBox_GetCount($aSource_path) < 20 Then ;Max. 20 Einträge
If $newFolder <> '' Then
_GUICtrlListBox_AddString($aSource_path,$newFolder)
EndIf
EndIf
EndFunc
Func _folder_remove()
Local $iIndex = _GUICtrlListBox_GetCurSel($aSource_path)
Local $iIndex_text = _GUICtrlListBox_GetText($aSource_path, $iIndex)
_GUICtrlListBox_DeleteString($aSource_path, $iIndex)
EndFunc
Func _filewrite()
$file_s = FileOpen($sources,2)
For $i = 0 To _GUICtrlListBox_GetCount($aSource_path) - 1
FileWriteLine($file_s, _GUICtrlListBox_GetText($aSource_path, $i))
Next
FileClose($file_s)
EndFunc ;==>_FileWrite
Func _saveini()
IniWrite($ini, "Einstellungen", "destination", $dest_select)
EndFunc ;==>saveini
Func _quit()
_saveini()
_filewrite()
Exit
EndFunc ;==>_Quit
Alles anzeigen
Allerdings scheint bei dem RoboCopy Befehl (Zeile 89) irgendwas nicht zu stimmen. Dos-Box geht zwar auf und er tut was, aber nicht kopieren
Kann da mal jemand drüber schauen und mir nen Tip geben?