Do while Problem

  • Es handelt sich mit an sicherheit grenzender Wahrscheinlichkeit wieder um einen Denkfehler, dennoch komme ich nicht weiter :/

    folgendes
    Es wird eine Datei mittels

    [autoit]

    _Zip_UnzipAll($tounzip,@ScriptDir,1)

    [/autoit]


    entpackt.
    im Vorfeld wurde mittels

    [autoit]

    $file = @ScriptDir & "\meine datei.msi"

    [/autoit]


    auch die Variable festgelegt.

    Damit das Script nun nicht wärend des entpackens weitermacht und dann keine Datei findet, dachte ich mir bist schlau machst ne abfrage.
    Jetzt habe ich bereits verschiedene Formen durch, aber alle enden in einer Endlosschleife.
    Aktuelles Beispiel:

    [autoit]

    do
    sleep(500)
    until FileExists($file)

    [/autoit]

    was sich soweit ja ganz "Logisch" liest, funktioniert aber trotzdem nicht.

    in einem anderen Fall:

    [autoit]

    local $var = 0
    do
    Sleep (500)
    $text = WinGetText("Anwendungsname ")
    $var = StringRegExp($text, "computer program",0)
    ;MsgBox(0,"",$var)
    Until $var =1

    [/autoit]

    klappt das aber wunderprächtig.

    ch habe auch schon ausprobiert $file global zu machen also

    [autoit]

    global $file = @ScriptDir & "\meine datei.msi"

    [/autoit]


    klappt auch nicht.

    Einmal editiert, zuletzt von Vincinzerei (4. September 2009 um 14:49)

  • Hallo,

    hier ist das Problem, das Dein SCript nur schläft und die alte Variable $file erhalten bleibt!

    do
    sleep(500)
    until FileExists($file)

    Du müsstest also zwischen do und until jedesmal $file neu setzen

    do
    $file = @ScriptDir & "\meine datei.msi"
    sleep(500)
    until FileExists($file)

  • Auf die Idee wär ich ehrlich jetzt nicht gekommen.
    Da kann ich mir auch das Sleep schenken..

    Danke :)