Probleme mit "For ... Next - Schleife"

  • Hey Dudes,

    Spoiler anzeigen
    [autoit]


    #include <_ntservices.au3>
    #include <File.au3>
    Global $ini = "X:\...\needs\server.ini"
    Global $logfile = "X:\...\loggs\logfile.cfg"

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

    $Dienst = IniRead($ini, "Server 0", "Dienstname TS3", "")
    _servicestop($dienst)
    $dienst_status = _ServiceStatus($Dienst)
    While $dienst_status <> "Stopped"
    Sleep(100)
    WEnd
    _FileWriteLog($logfile,"der TS3 Server wurde beendet...")

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

    $i= 1
    For $i = 1 To 5
    $Server = "Server " & $i ; legt die entsprechende Sektion fest (gewollt von 1 bis einschliesslich 5
    $Name = IniRead($ini, $Server, "Name des Buttons", "") ; dient der Übersicht im logfile
    $Dienst = IniRead($ini, $Server, "Dienstname MAM", "") ; der Dienstname in der gewollten INI-Sektion
    _servicestop($dienst)
    $dienst_status = _ServiceStatus($Dienst)
    While $dienst_status <> "Stopped"
    Sleep(100)
    WEnd
    _FileWriteLog($logfile,"ManuAdminMod beendet vom Server: " & $Name)
    Sleep(1000); reingebaut, damit es nicht zu schnell ist
    $i=$i+1
    Next
    _FileWriteLog($logfile,"Alle Dienste wurden gestoppt" & @LF)

    [/autoit]


    Eigentlich funktioniert dieser Code, allerdings werden die Sektionen der INI ausgelassen, wo $i eine gerade Zahl wird (sprich 2 und 4).
    Die Dienste der Sektionen "Server 1", "Server 3" und "Server 5" werden jeweils erfolgreich gestoppt.
    Warum "Server 2" und "Server 4" nicht?

    Bin wie immer ratlos und baue auf Eure Hilfe.

    mfG Lottich

  • Das Problem ist m.E. diese Zeile:

    [autoit]

    $i=$i+1

    [/autoit]

    Da

    [autoit]

    For

    [/autoit]

    selbst zählt, erhöhst Du $i jeweils um 2, nicht um 1.
    Also raus mit der Zeile und alles müsste laufen.


    //edited: da war wohl einer schneller, während ich noch die Vorschau angesehen hab...