Hallo liebe Com
Ich habe mir einen Script gebastelt, der meinen USB Stick synchronisieren soll, sobald er eingesteckt wurde und etwas verändert wurde.
Nun zu meinem Problem:
Über die Function DirCopy will ich nun alle Ordner von meinem Stick in einen Speicherort speichern. soweit so gut, nur dass dircopy die Ordner auf meinem Stick "öffnet" und dann den Inhalt, also nicht den übergeordneten Ordner kopiert.
Falls sich jemand durch meine Scripts durchwurschteln will
:
(achso, sind eine meiner ersten Scripts)
Spoiler anzeigen
#include <String.au3>
#include <File.au3>
#Include <Array.au3>
$StickMax = _FileCountLines(@scriptdir & "\Sticks.log")
Dim $i = 64, $Sticks[$StickMax], $Sticknumber = 0, $counterstick = 1, $counterort = 1
_FileReadToArray(@scriptdir & "\Sticks.log", $Sticks)
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]While 1 ;__________________________________________________________________________________warten, bis Stick eingesteckt wurde
$i = $i + 1
$Sticknumber = $Sticknumber +1
If Drivegetlabel(Chr($i) & ":") = $Sticks[$Sticknumber] Then
_Synchstart()
ExitLoop
ElseIf $Sticknumber = $StickMax Then
$Sticknumber = 0
ElseIf $i = 90 Then
$i = 64
EndIf
WEnd
Func _Synchstart()
$Sticklabel = Chr($i) & ":\"
$Index = _ArraySearch($Sticks, $Sticks[$Sticknumber])
$Speicherort = $Sticks[$Index +1]
$Stickdateien = _FileListToArray($Sticklabel)
$Speicherdateien = _FileListToArray($Speicherort)
_ArrayDisplay($Stickdateien)
If not(DirGetSize($Sticklabel) = DirGetSize($Speicherort)) Then
TrayTip("Synchronisation", "Stick wird synchronisiert",5 ,2)
Do
If not($Stickdateien[$counterstick] = $Speicherdateien[$counterort]) Then
DirCopy($Sticklabel & $Stickdateien[$counterstick], $Speicherort, 1)
$counterort = $counterort -1
ElseIf not(Dirgetsize($Sticklabel & $Stickdateien[$counterstick]) = Dirgetsize($Speicherort & $Speicherdateien[$counterort])) Then
DirCopy($Sticklabel & $Stickdateien[$counterstick], $Speicherort & $Speicherdateien[$counterort], 1)
$counterstick = $counterstick + 1
$counterort = $counterort + 1
Endif
$counterort = $counterort + 1
$counterstick = $counterstick + 1
Until $counterstick = $Stickdateien[0]
Traytip("Synchronisation", "Stick erfolgreich Synchronisiert!", 5, 2)
FileDelete($Speicherort & "\log.log")
sleep(5000)
Exit
EndIf
TrayTip("Synchronisation", "keine Synchronisation erforderlich.", 5, 2)
Sleep(5000)
EndFunc
Spoiler anzeigen
#include <String.au3>
#include <File.au3>
#include <Array.au3>
Dim $i = 0
[/autoit] [autoit][/autoit] [autoit]_anpassen()
[/autoit] [autoit][/autoit] [autoit]Func _anpassen() ;___________________________________________________________________________neu anlegen von Ordnern
$Button = MsgBox(1, "", "Bitte zu Synchronisierenden USB-Stick auswählen")
If $Button = 2 Then
MsgBox(0, "Synchronisation", "Programm wird beendet")
Exit
EndIf
$Stickname = FileSelectFolder ( "Stickauswahl", "")
If @error = 1 Then
MsgBox(0, "", "USB-Stick auslesen fehlgeschlagen, Programm wird geschlossen", 10)
Exit
EndIf
$Button = MsgBox(1, "", "Bitte Speicherort auswählen")
If $Button = 2 Then
MsgBox(0, "Synchronisation", "Programm wird beendet")
Exit
EndIf
$Speicherort = FileSelectFolder( "Speicherortauswahl", "")
If @error = 1 Then
MsgBox(0, "", "Speicherort auslesen fehlgeschlagen, Programm wird geschlossen", 10)
Exit
EndIf
$Stick = DriveGetLabel($Stickname)
$OpenedFile = FileOpen(@ScriptDir & "\log.log", 1)
FileWrite($OpenedFile, @CRLF & @MDAY & "\" & @MON & "\" & @YEAR & ", " & @HOUR & ":" & @MIN & ":" & @CRLF & "Neuer Stick hinzugefügt: " & $Stick & @CRLF)
FileClose($OpenedFile)
DirCreate($Speicherort & "\" & $Stick)
FileWrite($Speicherort & "\" & $Stick & "\log.log", "")
$OpenedFile = FileOpen(@ScriptDir & "\Sticks.log", 1)
FileWrite($OpenedFile, $Stick & @CRLF)
FileWrite($OpenedFile, $Speicherort & "\" & $Stick & @CRLF )
FileClose($OpenedFile)
MsgBox(0, "", "Erfolgreich abgeschlossen")
EndFunc
Das erste Script syncronisiert den Stick, das 2. konfiguriert .txt dateien, damit das 1. Script weiß, wie der Stick heißt etc.
Please help
PS: Bei mir ist der Weg das ziel, also bitte nicht mit: "Da gibts doch schon viel mächtigere Scripts" kommen
.