Also, mein Skript tut folgendes, bzw. zumindest sollte es das tun:
1. Poppt ein Gui auf, wo man 2 Ordner-Links einfügt
2. Durchsucht es diese beiden Ordner und gibt mir aus wenn
a) Dateien in Ordner 1 nicht sind
b) Dateien in Ordner 2 nicht sind
c) Dateien in Ordner 1 aktueller sind
d) Dateien in Ordner 2 aktueller sind
Das scheint bisher gut zu funktionieren. Momentan gibt er mir das in einer Array aus (_Displayarray). Später nehme ich _Displayarraytree, die hatte mal ein user hier gepostet, wenn ich mich recht errinere^^
Hier ist mein Skript bisher:
[autoit][/autoit][autoit][/autoit][autoit]#Include <File.au3>
#Include <Array.au3>
#Include <Date.au3>
#include <INet.au3>
#include <Word.au3>
#include <GUIConstants.au3>
#include <_ArrayDisplayTree.au3>
Global $oMyRet[2]
Global $oMyError = ObjEvent("AutoIt.Error", "MyErrFunc")
; GUI Befehle
GUICreate("Vergleichspfade eingeben", 300, 180) ;Öffnet das Fenster
GUISetState (@SW_SHOW) ;Fenster wird angezeigt
$pfadi1 = GUICtrlCreateInput ( "C:\Users\install\Desktop\Kev", 50, 50) ;InputZeile für Pfad 1
$pfadi2 = GUICtrlCreateInput ( "C:\Users\install\Desktop\Salva", 50, 100) ;InputZeile für Pfad 2
GUICtrlCreateLabel ( "Beenden mit ESC", 100, 10)
$button = GUICtrlCreateButton("OK", 100, 140, 40, 20) ;Button "OK" wird angezeigt
$button2 = GUICtrlCreateButton("Beenden", 145, 140, 70, 20)
$pfad1 = "C:\Users\install\Desktop\Kev"
$pfad2 = "C:\Users\install\Desktop\Salva"
; Arrays für die Ergebnisse
Dim $vergleichsarray0[1]
$vergleichsarray0[0] = "Diese Dateien sind in beiden Ordnern!"
Dim $vergleichsarray1[1]
$vergleichsarray1[0] = "Diese Dateien sind im Ordner" & " " & $pfad1 & " " & "aktueller!"
Dim $vergleichsarray2[1]
$vergleichsarray2[0] = "Diese Dateien sind im Ordner" & " " & $pfad2 & " " & "aktueller!"
Dim $vergleichsarray4[1]
$vergleichsarray4[0] = "Diese Dateien sind nicht im Ordner " & $pfad1 & " vorhanden!"
Dim $vergleichsarray5[1]
$vergleichsarray5[0] = "Diese Dateien sind nicht im Ordner " & $pfad2 & " vorhanden!"
HotKeySet ("{ESC}","close")
While 1
$msg = GUIGetMsg()
Select
Case $msg = $button
; Holen der Pfadinformationen
$filelist1 = _FileListToArray($pfad1) ; Array der Dateien Pfad 1
$filelist2 = _FileListToArray($pfad2) ; Array der Dateien Pfad 2
$fileanzahl1 = $filelist1[0] ;Gibt an, wieviele Dateien es überhaupt sind, das wird in der Array in Zeile "0" ausgegeben
$fileanzahl2 = $filelist2[0] ;Gibt an, wieviele Dateien es überhaupt sind, das wird in der Array in Zeile "0" ausgegeben
$zaehler = 1
While $zaehler <= $fileanzahl1 ;Läuft so lange, bis alle Dateien durch sind
; Holen der Dateiinformation aus Feld 1
$filename1 = $filelist1[$zaehler] ;Gibt Namen der Datei aus, für späteres 2. Array
$filehandle1 = $pfad1 & "\" & $filelist1[$zaehler]
$filedatum1 = FileGetTime($filehandle1) ;Zeigt Datum der Datei an
If @error Then
MsgBox(0,"$zaehler",$zaehler)
MsgBox(0,"$filehandle1",$filehandle1)
MsgBox(0,"$filelist1$zaehler",$filelist1[$zaehler])
Exit
EndIf
$filedatum11=$filedatum1[0] & "/" & $filedatum1[1] & "/" & $filedatum1[2] & " " & $filedatum1[3] & ":" & $filedatum1[4] & ":" & $filedatum1[5] ;Definiert das Datum im Format YYYY/MM/DD HH:MMS
$arraysearch1 = _ArraySearch($filelist2,$filename1)
If $arraysearch1 <> -1 Then
; Datei in beiden vorhanden
$filehandle2 = $pfad2 & "\" & $filelist2[$arraysearch1]
$filedatum2 = FileGetTime($filehandle2) ;Zeigt Datum der Datei an
$filedatum21=$filedatum2[0] & "/" & $filedatum2[1] & "/" & $filedatum2[2] & " " & $filedatum2[3] & ":" & $filedatum2[4] & ":" & $filedatum2[5] ;Definiert das Datum im Format YYYY/MM/DD HH:MMS
; Berechnen der Zeitdifferenz
$differenz= _DateDiff('n', $filedatum21,$filedatum11) ;Rechnet die Differenz der beiden Daten aus
If $differenz > 0 Then
_Arrayadd($vergleichsarray1, $filename1)
; Elseif $differenz < 0 Then
; _Arrayadd($vergleichsarray2, $filename1)
Endif
Else
; Datei in Pfad 1 aber nicht in Pfad 2
_ArrayAdd($vergleichsarray5, $filename1)
EndIf
$zaehler = $zaehler +1
WEnd
$zaehler = 1
While $zaehler <= $fileanzahl2 ;Läuft so lange, bis alle Dateien durch sind
; Holen der Dateiinformation aus Feld 1
$filename1 = $filelist2[$zaehler] ;Gibt Namen der Datei aus, für späteres 2. Array
$filehandle1 = $pfad2 & "\" & $filelist2[$zaehler]
$filedatum1 = FileGetTime($filehandle1) ;Zeigt Datum der Datei an
If @error Then
MsgBox(0,"$zaehler",$zaehler)
MsgBox(0,"$filehandle1",$filehandle1)
MsgBox(0,"$filelist1$zaehler",$filelist1[$zaehler])
Exit
EndIf
$filedatum11=$filedatum1[0] & "/" & $filedatum1[1] & "/" & $filedatum1[2] & " " & $filedatum1[3] & ":" & $filedatum1[4] & ":" & $filedatum1[5] ;Definiert das Datum im Format YYYY/MM/DD HH:MMS
$arraysearch1 = _ArraySearch($filelist1,$filename1)
If $arraysearch1 <> -1 Then
; Datei in beiden vorhanden
$filehandle2 = $pfad1 & "\" & $filelist1[$arraysearch1]
$filedatum2 = FileGetTime($filehandle2) ;Zeigt Datum der Datei an
$filedatum21=$filedatum2[0] & "/" & $filedatum2[1] & "/" & $filedatum2[2] & " " & $filedatum2[3] & ":" & $filedatum2[4] & ":" & $filedatum2[5] ;Definiert das Datum im Format YYYY/MM/DD HH:MMS
; Berechnen der Zeitdifferenz
$differenz= _DateDiff('n', $filedatum21,$filedatum11) ;Rechnet die Differenz der beiden Daten aus
If $differenz > 0 Then
_Arrayadd($vergleichsarray2, $filename1)
; Elseif $differenz < 0 Then
; _Arrayadd($vergleichsarray1, $filename1)
Endif
Else
; Datei in Pfad 1 aber nicht in Pfad 2
_ArrayAdd($vergleichsarray4, $filename1)
EndIf
$zaehler = $zaehler +1
WEnd
;~ msgbox(0,"",$differenz)
;~ msgbox(0,"alarm","!!!!!")
;Array "Vergleichsarray 0" = Dateien sind in beiden Ordnern
;Array "Vergleichsarray 1" = Datei ist in Ordner 2 akuteller
;Array "Vergleichsarray 2" = Datei ist in Ordner 1 aktueller
;Array "Vergleichsarray 4" = Datei ist in Ordner 1 nicht vorhanden
;Array "Vergleichsarray 5" = Datei ist in Ordner 2 nicht vorhanden
_ArrayDisplay($vergleichsarray4)
_ArrayDisplay($vergleichsarray5)
_Arraydisplay($vergleichsarray0, "Vergleichsscript")
_Arraydisplay($vergleichsarray1, "Vergleichsscript")
_Arraydisplay($vergleichsarray2, "Vergleichsscript")
;_ArrayDisplayTree($vergleichsarray0)
case $msg = $button2
Exit
EndSelect
WEnd
;************************************
;************Funktionen**************
;************************************
Func close() ;Funktionsdeklarierung für den Hotkey "ESC"
Exit
EndFunc
Okay, was es jetzt tun soll: Sobald ich auf einen Eintrag in 2a) klicke, soll er mir die Datei, die angeklickt wird, kopieren. Für hilfe wäre ich sehr dankbar =)