Da ich nicht weiß, wie lange xcopy zum Kopieren der Veränderungen braucht
deaktiviere ich den Aufruf mit AdlibUnRegister.
Um diesen wieder zu starten muss ich den Aufruf ja am Ende der Funktion wieder aktivieren
Vorstellung + Frage
-
- [ offen ]
-
hexpirator -
30. August 2011 um 12:30 -
Geschlossen -
Erledigt
-
-
Okay... ich habe Adlibunregister übersehen... mein Fehler
-
Die Funktion DirCopy funktioniert bei mir überhaupt nicht. Ich weiß nicht was ich falsch mache, aber es will einfach nicht klappen.
-
Poste mal dein derzeitiges Script!
-
Hier mein aktuelles Script. Es ist bestimmt nur eine Kleinigkeit, aber irgendwas übersehe ich.
[autoit]#cs ----------------------------------------------------------------------------
[/autoit][autoit][/autoit][autoit]AutoIt Version: 3.3.6.1
[/autoit][autoit][/autoit][autoit]
Author: HexpiratorScript Function:
[/autoit][autoit][/autoit][autoit]
Das Programm soll einen Quellordner auf Veränderungen überwachen und in
bestimmten Zeitintervalen die neu hinzugefügten Dateien in einen Zielordner
kopieren. Also quasi eine Sicherheitskopie erstellen.#ce ----------------------------------------------------------------------------
[/autoit][autoit][/autoit][autoit]
HotKeySet("+c", "vergleich") ;Shift_und_c zur Sicherung für zwischendurch
Global $quelle = "C:\Dokumente und Einstellungen\Admin\Desktop\quell\"
Global $Ziel = "C:\Dokumente und Einstellungen\Admin\Desktop\ziel\";Wenn sich keine Ordner im Quellordner befinden
[/autoit][autoit][/autoit][autoit]
;Global $Quellverzeichnis = DirGetSize ($quelle,0)
;Global $Zielverzeichnis = DirGetSize ($Ziel,0);Wenn sich Ordner im Quellordner befinden: Rekursivmodus
[/autoit][autoit][/autoit][autoit][/autoit][autoit]
Global $Quellverzeichnis = DirGetSize ($quelle,2)
Global $Zielverzeichnis = DirGetSize ($Ziel,2)$Zeitintervall = 10000;600000
[/autoit][autoit][/autoit][autoit]AdlibRegister("vergleich",$Zeitintervall)
[/autoit][autoit][/autoit][autoit]while 1
[/autoit][autoit][/autoit][autoit]
Sleep (500)
WEndFunc vergleich()
[/autoit][autoit][/autoit][autoit]$Quellverzeichnis = DirGetSize ($quelle,2)
[/autoit][autoit][/autoit][autoit]
$Zielverzeichnis = DirGetSize ($Ziel,2)If $Quellverzeichnis > $Zielverzeichnis Then
[/autoit][autoit][/autoit][autoit]
DirCopy ("C:\Dokumente und Einstellungen\Admin\Desktop\quell", "C:\Dokumente und Einstellungen\Admin\Desktop\ziel", 0);($quelle, $Ziel, 1)
MsgBox (0, "Hinweis", "Vom Quellordner in den Zielordner kopiert.")
ElseIf $Quellverzeichnis = $Zielverzeichnis Then
;MsgBox (0, "Hinweis", "keine Änderung")
Else
If $Quellverzeichnis < $Zielverzeichnis ThenDirCopy ("C:\Dokumente und Einstellungen\Admin\Desktop\ziel", "C:\Dokumente und Einstellungen\Admin\Desktop\quell", 0)
[/autoit][autoit][/autoit][autoit]
MsgBox (0, "Hinweis", "Vom Zielordner in den Quellordner kopiert.")EndIf
[/autoit][autoit][/autoit][autoit]EndIf
[/autoit][autoit][/autoit][autoit]EndFunc
[/autoit]Was mache ich falsch, bitte um Aufklärung.
-
Hat keiner eine Idee?
-
1. Benutz Makros
2. Wenn du den Ordner wählen möchtest darf am Ende kein \ stehen.Beispiel:
[autoit]$sDirPath = @DesktopDir & "\Mein Ordner" ;ohne \ am Ende!
[/autoit] -
Ich würde die Ordner gerne einmal über Inputbox auswählen können und dann verwenden.
Nur weiß ich leider nicht wie ich das anstellen soll.
Mit dem "\" weglassen werde ich ausprobieren.Ich habe hier irgendwo gelesen, dass man die Datei-, und Ordnernamen in ein Arrey packen kann und dann mit den Daten aus dem Zielordner vergleichen. Wenn vorhanden überspringen, wenn nicht, dann kopieren. Kann mir da vielleicht einer ein Denkanstoß geben???
Gruß, Eddy...
-