1. Dashboard
  2. Mitglieder
    1. Letzte Aktivitäten
    2. Benutzer online
    3. Team
    4. Mitgliedersuche
  3. Forenregeln
  4. Forum
    1. Unerledigte Themen
  • Anmelden
  • Registrieren
  • Suche
Alles
  • Alles
  • Artikel
  • Seiten
  • Forum
  • Erweiterte Suche
  1. AutoIt.de - Das deutschsprachige Forum.
  2. Mitglieder
  3. Fliwatt

Beiträge von Fliwatt

  • Gesamten Ordner von FTP Server herunterladen

    • Fliwatt
    • 6. April 2012 um 16:33

    autoBert es ist doch nicht der selbe Error, aber ein Error:
    (Script Aus Beitrag 10 verwendet, unverändert Copy & Paste)

    Spoiler anzeigen
    Code
    >"D:\Program Files (x86)\AutoIt3\SciTE\AutoIt3Wrapper\AutoIt3Wrapper.exe" /run /prod /ErrorStdOut /in "D:\Extras\Programmieren\AUTOIT\test.au3" /autoit3dir "D:\Program Files (x86)\AutoIt3" /UserParams	
    +>16:31:19 Starting AutoIt3Wrapper v.2.0.1.24	Environment(Language:0407  Keyboard:00000407  OS:WIN_7/Service Pack 1  CPU:X64 OS:X64)
    >Running AU3Check (1.54.22.0)  params:-d -w 1 -w 2 -w 3 -w 4 -w 5 -w 6  from:D:\Program Files (x86)\AutoIt3
    +>16:31:19 AU3Check ended.rc:0
    >Running:(3.3.8.1):D:\Program Files (x86)\AutoIt3\autoit3.exe "D:\Extras\Programmieren\AUTOIT\test.au3"	
    /pub/Judy
    /pub/erl
    /pub/erl/cam
    D:\Extras\Programmieren\AUTOIT\test.au3 (108) : ==> Array variable has incorrect number of subscripts or subscript dimension range exceeded.:
    If $aFiles[0][0] > 0 Then
    If ^ ERROR
    ->16:31:22 AutoIT3.exe ended.rc:1
    >Exit code: 1	Time: 3.724
    Alles anzeigen


    Mfg Fliwatt

  • Gesamten Ordner von FTP Server herunterladen

    • Fliwatt
    • 6. April 2012 um 12:19

    Und schon wieder das selbe Spielchen, ich habe es erst mit dem im Script angegebenen Server probiert, dann mit meinem, er gibt immer den gleichen Error aus:

    Spoiler anzeigen
    Code
    >"D:\Program Files (x86)\AutoIt3\SciTE\AutoIt3Wrapper\AutoIt3Wrapper.exe" /run /prod /ErrorStdOut /in "D:\Extras\Programmieren\AUTOIT\test.au3" /autoit3dir "D:\Program Files (x86)\AutoIt3" /UserParams	
    +>12:16:41 Starting AutoIt3Wrapper v.2.0.1.24	Environment(Language:0407  Keyboard:00000407  OS:WIN_7/Service Pack 1  CPU:X64 OS:X64)
    >Running AU3Check (1.54.22.0)  params:-d -w 1 -w 2 -w 3 -w 4 -w 5 -w 6  from:D:\Program Files (x86)\AutoIt3
    +>12:16:41 AU3Check ended.rc:0
    >Running:(3.3.8.1):D:\Program Files (x86)\AutoIt3\autoit3.exe "D:\Extras\Programmieren\AUTOIT\test.au3"	
    //MySQLadmin
    D:\Extras\Programmieren\AUTOIT\test.au3 (108) : ==> Array variable has incorrect number of subscripts or subscript dimension range exceeded.:
    If $aFiles[0][0] > 0 Then
    If ^ ERROR
    ->12:16:45 AutoIT3.exe ended.rc:1
    >Exit code: 1	Time: 5.535
    Alles anzeigen


    Mfg Fliwatt

  • Gesamten Ordner von FTP Server herunterladen

    • Fliwatt
    • 5. April 2012 um 13:53

    He Autobert,
    ich habe mir mal deinen Script angeschaut und bei mir hat er sich nach 2 Minuten mit dieser Fehlermeldung wieder geschlossen:

    Spoiler anzeigen
    Code
    D:\Extras\Programmieren\AUTOIT\test.au3 (53) : ==> Array variable has incorrect number of subscripts or subscript dimension range exceeded.:
    For $i = 1 To $aFolders[0][0]
    For $i = 1 To ^ ERROR


    Und ich habe mal ein bischen improvisiert(ich habe noch nie mit Arrays gearbeitet...) und habe das _ArrayDisplay mit _ArraySort ersetzt, aber irgendwie lädt er immernoch keine Dateien runter, die Array bleibt leer...

    Spoiler anzeigen
    [autoit]


    $Zielpfad = $folder & "\" & $worldname
    $path = $worldname
    $setdir = _Ftp_DirSetCurrent($hFTPConn, $path)
    if $setdir = 0 Then
    MsgBox(0, "Fehler", "Konnte nicht zu Verzeichnis " & $path & " wechseln !")
    _FTP_Close($hFTPOpen)
    Exit
    EndIf
    $files = _FTP_ListToArray($hFTPConn, 2)
    if $files = 0 Then
    msgbox(0, "Fehler", "Keine Dateien im Verzeichnis " & $path & " vorhanden ! ")
    _FTP_Close($hFTPOpen)
    Exit
    EndIf

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

    _ArraySort($files)
    for $i = 1 to $files[0]
    _FTP_FileGet($hFTPConn, $files[$i], $zielpfad & $files[$i])
    Next

    [/autoit]


    Mfg Fliwatt
    P.S. Die FTP Connection Daten stimmen, ich kann damit ohne Probleme einzelne Dateien laden.

  • Gesamten Ordner von FTP Server herunterladen

    • Fliwatt
    • 4. April 2012 um 12:52
    Zitat von baar

    Oder einfach so ?

    Spoiler anzeigen
    [autoit][/autoit] [autoit][/autoit] [autoit]

    #include
    #Include

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

    If Not FileExists (@ScriptDir & "\Temp") Then DirCreate (@ScriptDir & "\Temp")

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

    $Zielpfad = @ScriptDir & "\Temp\"

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

    $server = 'ip'
    $user = 'user'
    $pw = 'pw'
    $pasv = 1
    $port = 0 ; 0 für port 21

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

    $path = '/Ordnername'

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

    $Open = _FTP_Open('server')
    $conn = _FTP_Connect($open, $server, $user, $pw , $pasv , $port)

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

    $setdir = _Ftp_DirSetCurrent($Conn, $path)
    if $setdir = 0 Then
    MsgBox(0, "Fehler", "Konnte nicht zu Verzeichnis " & $path & " wechseln !")
    _FTP_Close($Open)
    Exit
    EndIf

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

    $files = _FTP_ListToArray($conn, 2)
    if $files = 0 Then
    msgbox(0, "Fehler", "Keine Dateien im Verzeichnis " & $path & " vorhanden ! ")
    _FTP_Close($Open)
    Exit
    EndIf

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

    _ArrayDisplay($files)

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

    for $i = 1 to $files[0]
    _FTP_FileGet($conn, $files[$i], $zielpfad & $files[$i])
    Next

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

    _FTP_Close($Open)

    [/autoit]
    Alles anzeigen
    Zitat von baar

    Oder einfach so ?

    Spoiler anzeigen
    [autoit][/autoit] [autoit][/autoit] [autoit]

    #include
    #Include

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

    If Not FileExists (@ScriptDir & "\Temp") Then DirCreate (@ScriptDir & "\Temp")

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

    $Zielpfad = @ScriptDir & "\Temp\"

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

    $server = 'ip'
    $user = 'user'
    $pw = 'pw'
    $pasv = 1
    $port = 0 ; 0 für port 21

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

    $path = '/Ordnername'

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

    $Open = _FTP_Open('server')
    $conn = _FTP_Connect($open, $server, $user, $pw , $pasv , $port)

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

    $setdir = _Ftp_DirSetCurrent($Conn, $path)
    if $setdir = 0 Then
    MsgBox(0, "Fehler", "Konnte nicht zu Verzeichnis " & $path & " wechseln !")
    _FTP_Close($Open)
    Exit
    EndIf

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

    $files = _FTP_ListToArray($conn, 2)
    if $files = 0 Then
    msgbox(0, "Fehler", "Keine Dateien im Verzeichnis " & $path & " vorhanden ! ")
    _FTP_Close($Open)
    Exit
    EndIf

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

    _ArrayDisplay($files)

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

    for $i = 1 to $files[0]
    _FTP_FileGet($conn, $files[$i], $zielpfad & $files[$i])
    Next

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

    _FTP_Close($Open)

    [/autoit]
    Alles anzeigen


    Dankeschön erstmal, aber ich habe noch eine Frage:
    Ich weiß nicht ob sich jemand mit Minecraft Bukkit auskennt, auf jedenfall ist es so, dass du einen plugins Ordner hast und wenn jemand ein neues plugin installiert, das dies dann auch manchmal einen ordner erstellt, das soll das Tool erkennen und diesen Ordner auch gleich mit runterladen, wie könnte man das anstellen?
    EDIT: Kann man es auch irgendwie hinkriegen, dass er kein Fenster mehr öffnet sondern automatisch alles runterlädt?

  • If Argumente werden übersprungen

    • Fliwatt
    • 3. April 2012 um 13:55

    Dankeschön, jetzt funktioniert mein Code und ist auch noch aufgeräumt.
    Danke danke danke. :thumbup:

  • If Argumente werden übersprungen

    • Fliwatt
    • 3. April 2012 um 10:39

    He Leute, ich muss euch mal wieder mit Kleinigkeiten nerven. (Warum gibt es kein Forum für Schnellhilfe?)
    Ich habe jetzt hier meinen Code, aber irgendwie übersspringt er die Argumente in den If's und wiederholt einfach den ganzen Mist obwohl das rein Codetechnisch gesehen gar nicht möglich ist.
    Das ist ein bischen schwierig zu erklären, seht es euch einfach selber mal an.
    (ich habe manchmal MsgBoxen eingebaut damit man sieht, wo der Code gerade ist.

    Spoiler anzeigen
    [autoit]


    #include <GUIConstantsEx.au3>
    #include <WindowsConstants.au3>
    #include <FTPex.au3>
    $folder = "minesynctestserver"
    Global $possible = 1
    Global $disabled = 0
    Global $status = "ready"
    Global $newstatus = 1
    Global $serveron = 0
    Global $worldname = "world"
    Global $FTPUser = 'minesync', $FTPPass = '##########', $FTPServer = 'minesync.bplaced.de'
    $Minesync = GUICreate("Minesync", 428, 195, 209, 134,$WS_CAPTION)
    $Label1 = GUICtrlCreateLabel("Lädt Minesync...", 24, 8, 358, 52)
    GUICtrlSetFont(-1, 30, 400, 0, "MS Sans Serif")
    $Button1 = GUICtrlCreateButton("Abbrechen", 8, 64, 401, 121, $WS_GROUP)
    GUICtrlSetFont(-1, 30, 400, 0, "MS Sans Serif")
    GUISetState(@SW_SHOW)
    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $Button1
    Exit
    EndSwitch
    if $possible = 0 Then
    if $disabled = 0 Then
    GUICtrlSetState($Button1,$GUI_DISABLE)
    $disabled = 1
    EndIf
    ElseIf $possible = 1 Then
    if $disabled = 1 Then
    GUICtrlSetState($Button1,$GUI_ENABLE)
    $disabled = 0
    EndIf
    EndIf
    if $newstatus = 1 Then
    if $status = "checkversion" or "waitcancel" Then
    GUICtrlSetData($Label1,"Überprüfe Version...")
    $newstatus = 0
    Elseif $status = "sync" Then
    GUICtrlSetData($Label1,"Synchronisieren...")
    $newstatus = 0
    EndIf
    EndIf
    if $status = "ready" Then
    $status = "checkversion"
    ElseIf $status = "checkversion" Then
    GUICtrlSetState($Button1,$GUI_DISABLE)
    Global $file = 'serverversion.ini'
    Global $ziel = @TempDir & "\serverversion.ini"
    Global $hFTPOpen = _FTP_Open('FTP Control')
    Global $hFTPConn = _FTP_Connect($hFTPOpen,$FTPServer, $FTPUser, $FTPPass)
    _FTP_FileGet($hFTPConn,$file,$ziel,True)
    $versionserver = IniRead(@TempDir & "\serverversion.ini","server","version","notfound")
    $versionclient = IniRead("thisversion.ini","server","version","notfound")
    if $versionclient = "notfound" or $versionserver = "notfound" Then
    MsgBox(48,"FEHLER","ini fehlerhaft, versionsabgleich, serverversion.ini:" & $versionserver & ",thisversion.ini" & $versionclient)
    _FTP_Close($hFTPOpen)
    Exit
    EndIf
    if $versionclient < $versionserver Then
    GUICtrlSetState($Button1,$GUI_ENABLE)
    $status = "waitcancel"
    $canceltimer = TimerInit()
    ElseIf $versionclient > $versionserver Then
    MsgBox(48,"FEHLER","Die Version im Client ist neuer als die im Server, das heißt der Upload wurde abgebrochen")
    _FTP_Close($hFTPOpen)
    Exit
    ElseIf $versionclient = $versionclient Then
    $status = "startserver"
    EndIf
    ElseIf $status = "waitcancel" Then
    if $canceltimer > 3000 Then
    $status = "sync"
    $possible = 0
    EndIf
    ElseIf $status = "startserver" Then
    MsgBox(0,"TEST","Das passiert, wenn die versionen übereinstimmen!")
    _FTP_Close($hFTPOpen)
    Exit
    ElseIf $status = "sync" Then
    MsgBox(0,"TEST","Hier kommt dann die Synchronisation hin")
    $file = 'serverstate.ini'
    $ziel = @TempDir & "\serverstate.ini"
    _FTP_FileGet($hFTPConn,$file,$ziel,True)
    $runninggrusim = IniRead(@TempDir & "\serverstate.ini","serverstatus","serverrunninggrusim","notfound")
    $syncgrusim = IniRead(@TempDir & "\serverstate.ini","serverstatus","serversyncgrusim","notfound")
    MsgBox(0,"Passed","Get passed")
    If $runninggrusim = "notfound" or $syncgrusim = "notfound" Then
    MsgBox(48,"FEHLER","ini fehlerhaft")
    _FTP_Close($hFTPOpen)
    Exit
    EndIf
    If $runninggrusim = 1 Then
    $iMsgBoxAnswer = MsgBox(292,"WARNUNG","Der Server auf dem anderen Computer läuft noch, möchten sie ihn beenden?")
    Select
    Case $iMsgBoxAnswer = 6
    GUICtrlSetData($Label1,"Synchronisieren...")
    IniWrite($ziel,"serverstatus","pleaseclosegrusim",1)
    $succ = _FTP_FilePut($hFTPConn,$ziel,$file)
    if $succ = 0 Then
    MsgBox(48,"FEHLER","Es ist ein Fehler beim Upload aufgetreten: serverstatus.ini")
    _FTP_Close($hFTPOpen)
    Exit
    EndIf
    while 1
    GUICtrlSetData($Label1,"Warte auf PC2...")
    sleep(1000)
    _FTP_FileGet($hFTPConn,$file,$ziel,True)
    $runninggrusim = IniRead(@TempDir & "\serverstate.ini","serverstatus","serverrunninggrusim","notfound")
    $syncgrusim = IniRead(@TempDir & "\serverstate.ini","serverstatus","serversyncgrusim","notfound")
    $requestgrusim = IniRead (@TempDir & "\serverstate.ini","serverstatus","pleaseclosegrusim","notfound")
    if $runninggrusim = "notfound" or $syncgrusim = "notfound" or $requestgrusim = "notfound" Then
    MsgBox(48,"FEHLER","Ein Fehler ist aufgetreten: serverstate.ini invalid")
    _FTP_Close($hFTPOpen)
    Exit
    EndIf
    if $runninggrusim = 1 and $requestgrusim = 0 Then
    MsgBox(48,"FEHLER","Der andere Nutzer hat das beenden abgelehnt.")
    _FTP_Close($hFTPConn)
    Exit
    ElseIf $runninggrusim = 0 and $syncgrusim = 0 Then
    Call("Download")
    Endif
    Wend
    Case $iMsgBoxAnswer = 7
    MsgBox(64,"Abbruch durch Nutzer","Vorgang abgebrochen")
    _FTP_Close($hFTPOpen)
    Exit
    EndSelect
    EndIf
    ElseIf $syncgrusim = 1 Then
    MsgBox(64,"Vorgang abgebrochen","Der andere Computer synchronisiert gerade noch, bitte versuchen sie es später erneut")
    _FTP_Close($hFTPOpen)
    Exit
    Else
    MsgBox(0,"Download über Else","")
    Call("Download")
    EndIf
    WEnd
    Func Download()
    GUICtrlSetData($Label1,"Synchronisieren...")
    DirCopy($folder & "\" & $worldname,$folder & "\" & $worldname & "_backup",1)
    DirCopy($folder & "\" & $worldname & "_nether",$folder & "\" & $worldname & "_nether" & "_backup",1)
    DirCopy($folder & "\" & $worldname & "_the_end",$folder & "\" & $worldname & "_the_end" & "_backup",1)
    MsgBox(0,"TEST","ENDE")
    Exit
    Return
    EndFunc

    [/autoit]


    Ini Dateien:

    Spoiler anzeigen

    serverversion.ini (auf ftp server):

    Code
    [server]
    version=2


    thisversion.ini (clientversion):

    Code
    [server]
    version=1


    serverstate.ini (auf ftp server)

    Code
    [serverstatus]
    serverrunningfliwatt=0
    serverrunninggrusim=0
    serversyncgrusim=0
    serversyncfliwatt=0
    pleaseclosefliwatt=0
    pleaseclosegrusim=0


    Ich habe bei allen Dateien auf Groß-und-Kleinschreibung geachtet.


    Ich hoffe ihr könnt mir (wie sonst immer) weiterhelfen. :thumbup:
    Mfg Fliwatt

  • Syntax Fehler im Code

    • Fliwatt
    • 3. April 2012 um 09:25

    Dankeschön, ich hab ewigkeiten gesucht, immer dieses Codegewusel :P

  • Syntax Fehler im Code

    • Fliwatt
    • 2. April 2012 um 13:14

    He Leute, ich glaube das Problem ist ganz einfach zu beheben aber ich komm einfach nicht drauf, was muss ich löschen oder hinzufügen, er zeigt mir an:

    Code
    D:\Server\minesync test\minesync.au3(134,1) : ERROR: missing EndIf.
    WEnd
    ^
    D:\Server\minesync test\minesync.au3(44,27) : REF: missing EndIf.
    	if $status = "ready" Then
    	~~~~~~~~~~~~~~~~~~~~~~~~~^
    D:\Server\minesync test\minesync.au3 - 1 error(s), 0 warning(s)


    AutoITCode:

    Spoiler anzeigen
    [autoit]

    #include <GUIConstantsEx.au3>
    #include <WindowsConstants.au3>
    #include <FTPex.au3>
    $folder = "minesynctestserver"
    Global $possible = 1
    Global $disabled = 0
    Global $status = "ready"
    Global $newstatus = 1
    Global $serveron = 0
    Global $worldname = "world"
    Global $FTPUser = 'minesync', $FTPPass = '####', $FTPServer = 'minesync.bplaced.de'
    $Minesync = GUICreate("Minesync", 428, 195, 209, 134,$WS_CAPTION)
    $Label1 = GUICtrlCreateLabel("Lädt Minesync...", 24, 8, 358, 52)
    GUICtrlSetFont(-1, 30, 400, 0, "MS Sans Serif")
    $Button1 = GUICtrlCreateButton("Abbrechen", 8, 64, 401, 121, $WS_GROUP)
    GUICtrlSetFont(-1, 30, 400, 0, "MS Sans Serif")
    GUISetState(@SW_SHOW)
    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $Button1
    Exit
    EndSwitch
    if $possible = 0 Then
    if $disabled = 0 Then
    GUICtrlSetState($Button1,$GUI_DISABLE)
    $disabled = 1
    EndIf
    ElseIf $possible = 1 Then
    if $disabled = 1 Then
    GUICtrlSetState($Button1,$GUI_ENABLE)
    $disabled = 0
    EndIf
    EndIf
    if $newstatus = 1 Then
    if $status = "checkversion" or "waitcancel" Then
    GUICtrlSetData($Label1,"Überprüfe Version...")
    $newstatus = 0
    Elseif $status = "sync" Then
    GUICtrlSetData($Label1,"Synchronisieren...")
    $newstatus = 0
    EndIf
    EndIf
    if $status = "ready" Then
    $status = "checkversion"
    ElseIf $status = "checkversion" Then
    GUICtrlSetState($Button1,$GUI_DISABLE)
    Global $file = 'serverversion.ini'
    Global $ziel = @TempDir & "\serverversion.ini"
    Global $hFTPOpen = _FTP_Open('FTP Control')
    Global $hFTPConn = _FTP_Connect($hFTPOpen,$FTPServer, $FTPUser, $FTPPass)
    _FTP_FileGet($hFTPConn,$file,$ziel,True)
    $versionserver = IniRead(@TempDir & "\serverversion.ini","server","version","notfound")
    $versionclient = IniRead("thisversion.ini","server","version","notfound")
    if $versionclient = "notfound" or $versionserver = "notfound" Then
    MsgBox(48,"FEHLER","ini fehlerhaft")
    _FTP_Close($hFTPOpen)
    Exit
    EndIf
    if $versionclient < $versionserver Then
    GUICtrlSetState($Button1,$GUI_ENABLE)
    $status = "waitcancel"
    $canceltimer = TimerInit()
    ElseIf $versionclient > $versionserver Then
    MsgBox(48,"FEHLER","Die Version im Client ist neuer als die im Server, das heißt der Upload wurde abgebrochen")
    _FTP_Close($hFTPOpen)
    Exit
    ElseIf $versionclient = $versionclient Then
    $status = "startserver"
    EndIf
    ElseIf $status = "waitcancel" Then
    if $canceltimer > 3000 Then
    $status = "sync"
    $possible = 0
    EndIf
    ElseIf $status = "startserver" Then
    MsgBox(0,"TEST","Das passiert, wenn die versionen übereinstimmen!")
    _FTP_Close($hFTPOpen)
    Exit
    ElseIf $status = "sync" Then
    MsgBox(0,"TEST","Hier kommt dann die Synchronisation hin")
    $file = 'serverstate.ini'
    $ziel = @TempDir & "\serverstate.ini"
    _FTP_FileGet($hFTPConn,$file,$ziel,True)
    $runninggrusim = IniRead(@TempDir & "\serverstate.ini","serverstatus","serverrunninggrusim","notfound")
    $syncgrusim = IniRead(@TempDir & "\serverstate.ini","serverstatus","serversyncgrusim","notfound")
    If $runninggrusim = "notfound" or $syncgrusim = "notfound" Then
    MsgBox(48,"FEHLER","ini fehlerhaft")
    _FTP_Close($hFTPOpen)
    Exit
    EndIf
    If $runninggrusim = 1 Then
    $iMsgBoxAnswer = MsgBox(292,"WARNUNG","Der Server auf dem anderen Computer läuft noch, möchten sie ihn beenden?")
    Select
    Case $iMsgBoxAnswer = 6
    GUICtrlSetData($Label1,"Synchronisieren...")
    IniWrite($ziel,"serverstatus","pleaseclosegrusim",1)
    $succ = _FTP_FilePut($hFTPConn,$ziel,$file)
    if $succ = 0 Then
    MsgBox(48,"FEHLER","Es ist ein Fehler beim Upload aufgetreten: serverstatus.ini")
    _FTP_Close($hFTPOpen)
    Exit
    EndIf
    while 1
    GUICtrlSetData($Label1,"Warte auf PC2...")
    sleep(1000)
    _FTP_FileGet($hFTPConn,$file,$ziel,True)
    $runninggrusim = IniRead(@TempDir & "\serverstate.ini","serverstatus","serverrunninggrusim","notfound")
    $syncgrusim = IniRead(@TempDir & "\serverstate.ini","serverstatus","serversyncgrusim","notfound")
    $requestgrusim = IniRead (@TempDir & "\serverstate.ini","serverstatus","pleaseclosegrusim","notfound")
    if $runninggrusim = "notfound" or $syncgrusim = "notfound" or $requestgrusim = "notfound" Then
    MsgBox(48,"FEHLER","Ein Fehler ist aufgetreten: serverstate.ini invalid")
    _FTP_Close($hFTPOpen)
    Exit
    EndIf
    if $runninggrusim = 1 and $requestgrusim = 0 Then
    MsgBox(48,"FEHLER","Der andere Nutzer hat das beenden abgelehnt.")
    _FTP_Close($hFTPConn)
    Exit
    ElseIf $runninggrusim = 0 and $syncgrusim = 0 Then
    GUICtrlSetData($Label1,"Synchronisieren...")
    DirCopy($folder & "\" & $worldname,$folder & "\" & $worldname & "_backup",1)
    DirCopy($folder & "\" & $worldname & "_nether",$folder & "\" & $worldname & "_nether" & "_backup",1)
    DirCopy($folder & "\" & $worldname & "_the_end",$folder & "\" & $worldname & "_the_end" & "_backup",1)
    Call("Download")
    Endif
    Wend
    Case $iMsgBoxAnswer = 7
    MsgBox(64,"Abbruch durch Nutzer","Vorgang abgebrochen")
    _FTP_Close($hFTPOpen)
    Exit
    EndSelect
    EndIf
    WEnd
    Func Download()
    Return
    EndFunc

    [/autoit]


    Danke für eure HIlfe im Vorraus
    Mfg Fliwatt

  • Gesamten Ordner von FTP Server herunterladen

    • Fliwatt
    • 28. März 2012 um 19:43

    Ich will jetzt nicht ungeduldig erscheinen aber mein Thema ist schon auf Seite 3
    PUSH

  • Gesamten Ordner von FTP Server herunterladen

    • Fliwatt
    • 25. März 2012 um 12:53

    Dankeschön, aber wie "callt" man diese Funktion?
    Und muss ich einfach nur in Zeile 20 _FTp_FileGet eintragen?

  • Gesamten Ordner von FTP Server herunterladen

    • Fliwatt
    • 24. März 2012 um 15:21

    He Leute,
    ich hatte das Problem ja schon mal, aber nur mit dem Upload, da geht ja der Befehl

    [autoit]

    _FTP_DirPutContents()

    [/autoit]


    ganz gut aber es gibt leider kein _FTP_DirGetContents()
    Vieleicht könnt ihr mir ja helfen.
    Mfg Fliwatt

  • Gesamten Ordner auf FTP Server kopieren

    • Fliwatt
    • 23. März 2012 um 23:05

    Danke, danke danke!
    Ok, Problem gelöst

  • Gesamten Ordner auf FTP Server kopieren

    • Fliwatt
    • 21. März 2012 um 22:39
    Zitat von Aquaplant

    Gehts zufällig um Minecraft Bukkit? :P

    Entweder lädst du halt den Ordner neu hoch, dabei wird die Datei (die auf deinem Server nicht vorhanden ist) automatisch eingefügt. Je nachdem ob du überschreiben lässt oder nicht werden die anderen vorhandenen ggf. aktualisiert oder bleiben wie sie sind.

    Wenn du es mit den o.g. Methoden versuchst nimmst du jeweils die Dateinamen die ausgegeben werden und überprüfst ob die Datei bereits auf dem Server exisitert. Wenn nicht lässt du sie hochladen.


    Jup, Minecraft Bukkit :P Aber wie lade ich denn den Ordner neu hoch, mit welchem Befehl?

  • Gesamten Ordner auf FTP Server kopieren

    • Fliwatt
    • 18. März 2012 um 17:35

    danke, aber was mache ich, wenn zum Beispiel wenn im Ordner plugins eine neue .jar datei hinzukommt?

  • Gesamten Ordner auf FTP Server kopieren

    • Fliwatt
    • 16. März 2012 um 22:24

    He Leute, ich glaube ich spamme mit meinem Synchronisationstool das ganze Forum zu :D
    Vielen Dank schon für eure Hilfe, bei den anderen Themen(besonders bedanken möchte ich mich bei Aquaplant, bei Protex und bei name22), aber diesmal geht es wieder um etwas anderes.
    Ich will versuchen alle Dateien in einem Ordner auf einen FTP Server hochzuladen.
    Falls eine neue Datei hinzukommt soll er das bei der Synchronisation erkennen und diese ebenfalls hochladen.
    Wie kann ich das in Autoit anstellen?
    Danke für eure Hilfe im Vorraus
    Mfg Fliwatt

  • Ungewöhnliches ini Verhalten

    • Fliwatt
    • 16. März 2012 um 18:26
    Spoiler anzeigen


    CODE REMOVED!


    Danke für deine Geduld :D
    EDIT: Ich weiß jetzt woran es liegt, ungefähr, die zweite ini, vom Client gibt immer das default also nicht gefunden zurück.
    hab keine Ahnung woran das liegen könnt
    EDIT2: Danke, ich muss die ini in den selben ordner wie die exe packen, gelöst!

  • Ungewöhnliches ini Verhalten

    • Fliwatt
    • 16. März 2012 um 15:50

    danke, das kommt davon, wenn man in mehreren sprachen gleichzeitig programmiert, in java ist das anders :D
    Aber mein Kot(absicht) geht immer noch nicht, bitte check ihn noch mal (Du hast in Zeile 62 so 3 bindestriche gemacht, hat das was zu bedeuten?)

    Spoiler anzeigen
    [autoit]


    #include <GUIConstantsEx.au3>
    #include <WindowsConstants.au3>
    #include <FTPex.au3>
    FileDelete(@TempDir & "\serverversion.ini")
    Global $possible = 1
    Global $disabled = 0
    Global $status = "ready"
    Global $newstatus = 1
    Global $serveron = 0
    Global $FTPUser = '#', $FTPPass = '#', $FTPServer = '#'
    $Minesync = GUICreate("Minesync", 428, 195, 209, 134,$WS_CAPTION)
    $Label1 = GUICtrlCreateLabel("Lädt Minesync...", 24, 8, 358, 52)
    GUICtrlSetFont(-1, 30, 400, 0, "MS Sans Serif")
    $Button1 = GUICtrlCreateButton("Abbrechen", 8, 64, 401, 121, $WS_GROUP)
    GUICtrlSetFont(-1, 30, 400, 0, "MS Sans Serif")
    GUISetState(@SW_SHOW)
    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $Button1
    Exit
    EndSwitch
    if $possible = 0 Then
    if $disabled = 0 Then
    GUICtrlSetState($Button1,$GUI_DISABLE)
    $disabled = 1
    EndIf
    ElseIf $possible = 1 Then
    if $disabled = 1 Then
    GUICtrlSetState($Button1,$GUI_ENABLE)
    $disabled = 0
    EndIf
    EndIf
    if $newstatus = 1 Then
    if $status = "checkversion" or "waitcancel" Then
    GUICtrlSetData($Label1,"Überprüfe Version...")
    $newstatus = 0
    Elseif $status = "sync" Then
    GUICtrlSetData($Label1,"Synchronisieren...")
    $newstatus = 0
    EndIf
    EndIf
    if $status = "ready" Then
    $status = "checkversion"
    ElseIf $status = "checkversion" Then
    GUICtrlSetState($Button1,$GUI_DISABLE)
    Global $file = 'serverversion.ini'
    Global $ziel = @TempDir & "\"
    Global $hFTPOpen = _FTP_Open('FTP Control')
    Global $hFTPConn = _FTP_Connect($hFTPOpen, $FTPServer, $FTPUser, $FTPPass)
    _FTP_FileGet($hFTPConn,$file,$ziel,True)
    $versionserver = IniRead(@TempDir & "\serverversion.ini","server","version","notfound")
    $versionclient = IniRead(@AutoItExe & "\minesynctestserver\thisversion.ini","server","version","notfound")
    if $versionclient = "notfound" or $versionserver = "notfound" Then
    MsgBox(0,"FEHLER","ini fehlerhaft")
    _FTP_Close($hFTPOpen)
    Exit
    EndIf
    if $versionclient < $versionserver Then
    GUICtrlSetState($Button1,$GUI_ENABLE)
    $status = "waitcancel"
    $canceltimer = TimerInit()
    ElseIf $versionclient > $versionserver Then
    MsgBox(0,"FEHLER","Die Version im Client ist neuer als die im Server, das heißt der Upload wurde abgebrochen")
    _FTP_Close($hFTPOpen)
    Exit
    ElseIf $versionclient = $versionclient Then
    $status = "startserver"
    EndIf
    ElseIf $status = "waitcancel" Then
    if $canceltimer > 3000 Then
    MsgBox(0,"TEST","Hier kommt dann die Synchronisation hin")
    _FTP_Close($hFTPOpen)
    Exit
    EndIf
    ElseIf $status = "startserver" Then
    MsgBox(0,"TEST","Das passiert, wenn die versionen übereinstimmen!")
    _FTP_Close($hFTPOpen)
    Exit
    EndIf
    WEnd

    [/autoit]


    auf dem server liegt die datei (case sensitive) serverversion.ini

  • Ungewöhnliches ini Verhalten

    • Fliwatt
    • 16. März 2012 um 14:38

    He Leute, ich habe wieder ein Problem mit meinem Synchronisationsprogramm.
    Und zwar soll das Tool eine ini vom Server herunterladen und die beiden ini's vergleichen und je nachdem dann updaten oder nicht.
    So, jetzt ist das Problem, dass die ini datei auf dem server die version 2 hat und die andere die version 1 aber trotzdem behauptet das programm, die versionen wären beide gleich.
    Und das Programm erstellt noch eine Datei 0 ohne Endung.
    Hier ist der Quellcode(teilweise zensiert, passwörter für server etc.)

    Spoiler anzeigen
    [autoit]


    #include <GUIConstantsEx.au3>
    #include <WindowsConstants.au3>
    #include <FTPex.au3>
    FileDelete(@TempDir + "\serverversion.ini")
    MsgBox(0,"",$test)
    Global $possible = 1
    Global $disabled = 0
    Global $status = "ready"
    Global $newstatus = 1
    Global $serveron = 0
    Global $FTPUser = '###', $FTPPass = '###', $FTPServer = '###'
    $Minesync = GUICreate("Minesync", 428, 195, 209, 134,$WS_CAPTION)
    $Label1 = GUICtrlCreateLabel("Lädt Minesync...", 24, 8, 358, 52)
    GUICtrlSetFont(-1, 30, 400, 0, "MS Sans Serif")
    $Button1 = GUICtrlCreateButton("Abbrechen", 8, 64, 401, 121, $WS_GROUP)
    GUICtrlSetFont(-1, 30, 400, 0, "MS Sans Serif")
    GUISetState(@SW_SHOW)
    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $Button1
    Exit
    EndSwitch
    if $possible = 0 Then
    if $disabled = 0 Then
    GUICtrlSetState($Button1,$GUI_DISABLE)
    $disabled = 1
    EndIf
    ElseIf $possible = 1 Then
    if $disabled = 1 Then
    GUICtrlSetState($Button1,$GUI_ENABLE)
    $disabled = 0
    EndIf
    EndIf
    if $newstatus = 1 Then
    if $status = "checkversion" or "waitcancel" Then
    GUICtrlSetData($Label1,"Überprüfe Version...")
    $newstatus = 0
    Elseif $status = "sync" Then
    GUICtrlSetData($Label1,"Synchronisieren...")
    $newstatus = 0
    EndIf
    EndIf
    if $status = "ready" Then
    $status = "checkversion"
    ElseIf $status = "checkversion" Then
    GUICtrlSetState($Button1,$GUI_DISABLE)
    Global $file = 'serverversion.ini'
    Global $ziel = @TempDir + "\"
    Global $hFTPOpen = _FTP_Open('FTP Control')
    Global $hFTPConn = _FTP_Connect($hFTPOpen, $FTPServer, $FTPUser, $FTPPass)
    _FTP_FileGet($hFTPConn,$file,$ziel,True)
    $versionserver = IniRead(@TempDir + "\serverversion.ini","server","version","notfound")
    $versionclient = IniRead(@AutoItExe + "\minesynctestserver\thisversion.ini","server","version","notfound")
    if $versionclient = "notfound" or $versionserver = "notfound" Then
    MsgBox(0,"FEHLER","ini fehlerhaft")
    _FTP_Close($hFTPOpen)
    Exit
    EndIf
    if $versionclient < $versionserver Then
    GUICtrlSetState($Button1,$GUI_ENABLE)
    $status = "waitcancel"
    $canceltimer = TimerInit()
    ElseIf $versionclient > $versionserver Then
    MsgBox(0,"FEHLER","Die Version im Client ist neuer als die im Server, das heißt der Upload wurde abgebrochen")
    _FTP_Close($hFTPOpen)
    Exit
    ElseIf $versionclient = $versionclient Then
    $status = "startserver"
    EndIf
    ElseIf $status = "waitcancel" Then
    if $canceltimer > 3000 Then
    MsgBox(0,"TEST","Hier kommt dann die Synchronisation hin")
    _FTP_Close($hFTPOpen)
    Exit
    EndIf
    ElseIf $status = "startserver" Then
    MsgBox(0,"TEST","Das passiert, wenn die versionen übereinstimmen!")
    _FTP_Close($hFTPOpen)
    Exit
    EndIf
    WEnd

    [/autoit]


    Hier sind die beiden ini dateien

    Spoiler anzeigen

    Server ini:

    Code
    [server]
    version=2


    Client ini

    Code
    [server]
    version=1


    Danke für eure Hilfe im Vorraus
    Mfg Fliwatt

  • auf eine Button clicken innerhalt eines control Fensters

    • Fliwatt
    • 16. März 2012 um 14:31

    versuch es doch mal mit tastenkombinationen via

    [autoit]

    send

    [/autoit]

    Befehl.

  • Funktionierendes FTP-Script gesuch

    • Fliwatt
    • 16. März 2012 um 14:07

    danke, hab es mit timern gemacht und einer status variable, die immer umgeschaltet wird.
    Thread kann geschlossen werden

Spenden

Jeder Euro hilft uns, Euch zu helfen.

Download

AutoIt Tutorial
AutoIt Buch
Onlinehilfe
AutoIt Entwickler
  1. Datenschutzerklärung
  2. Impressum
  3. Shoutbox-Archiv
Community-Software: WoltLab Suite™