5 Replies Latest reply on Oct 25, 2011 6:16 AM by cmickler

    WHILE Syntaxersatz

    cmickler Rookie
      Hallo,

      ich suche etwas aehnliches wie eine While Schleife, die dann abbricht, wenn z.B. eine Datei nicht mehr existiert.

      Ich habe mir sowas gedacht:


      : check
      If Exist('%HOMEDRIVE%\verzeichnis\go.txt')
      ........Sleep('5')
      ........goto check
      Copy('.\Extern$\fertig.txt','c:\log\')/TW

      Also, wenn go.txt geloescht wird, sollte es weiter im Code gehen. Aber irgendwie laeuft nun eine Schleife die nicht mehr abbricht. Jemand eine Idee, was ich falsch gemacht habe?
      Ich habe es uebrigens auch schon mit einem Else nach dem goto versucht. Ergebnis ist das gleiche.

      Mit Dank und Gruss,
      Christian
        • 1. Re: WHILE Syntaxersatz
          Apprentice
          Hier im Text sind die beiden Befehle Sleep, Goto eingerückt, sind sie auch wirklich in deinem Script eingerückt?
          • 2. Re: WHILE Syntaxersatz
            cmickler Rookie
            Ja, mir war nicht so ganz klar, wie ich hier im Forum verdeutlichen kann, dass die beiden Befehle eingerückt sind und somit sich klar auf den IF-Block beziehen.
            • 3. Re: WHILE Syntaxersatz
              remote1 Apprentice
              kannst Du vielleicht etwas genauer beschreiben, was Du erreichen willst. mir ist leider nicht ganz klar, welcher Prozess die go.txt datei dann letztendlich löscht.

              Abgesehen davon sieht Deine Schleife ja gut aus. ich vermute, das aber die go.txt datei immer noch existiert und Du deswegen nicht aus dem Loop kommst.

              Gruss Ralph
              • 4. Re: WHILE Syntaxersatz
                Apprentice
                Dann bleibt dir nur noch Logging lesen
                für dein Beispiel würde ein ausführliches Log so aussehen:

                11:15:18 2     ---->Starting installation of "NiTryWhile"

                11:15:18 2     -> : check

                11:15:18 1     Evaluating condition "Exist('_HOMEDRIVE_\temp\go.txt')"
                11:15:18 2     Condition TRUE  -> entering IF part

                11:15:18 2     ->  Sleep('5')
                11:15:23 2     ->  goto check

                11:15:23 1     Evaluating condition "Exist('_HOMEDRIVE_\temp\go.txt')"
                11:15:23 2     Condition TRUE  -> entering IF part

                11:15:23 2     ->  Sleep('5')
                11:15:28 2     ->  goto check

                11:15:28 1     Evaluating condition "Exist('_HOMEDRIVE_\temp\go.txt')"
                11:15:28 2     Condition TRUE  -> entering IF part

                11:15:28 2     ->  Sleep('5')
                11:15:33 2     ->  goto check

                11:15:33 1     Evaluating condition "Exist('_HOMEDRIVE_\temp\go.txt')"
                11:15:33 2     Condition TRUE  -> entering IF part

                11:15:33 2     ->  Sleep('5')
                11:15:38 2     ->  goto check

                11:15:38 1     Evaluating condition "Exist('_HOMEDRIVE_\temp\go.txt')"
                11:15:38 2     Condition FALSE  -> skipping IF part
                11:15:38 2     Skipping command : Sleep

                11:15:38 2     Skipping command : goto

                11:15:38 2     -> Copy('\\servername
                e$\Work\Master\Projects\{BCCAFE54-FD0C-4BF6-A6DB-F24B41257313}\Extern$\fertig.txt','c:\temp\log.txt')
                11:15:38 2      Copying \\servername
                e$\Work\Master\Projects\{BCCAFE54-FD0C-4BF6-A6DB-F24B41257313}\Extern$\fertig.txt to c:\temp\log.txt

                • 5. Re: WHILE Syntaxersatz
                  cmickler Rookie
                  ok - erstmal Danke für die Antworten.

                  Die Datei go.txt war ein Beispiel. Zum Testen des Paketes lösche ich nach einiger Zeit die Datei von Hand um zu sehen, ob der Code wirklich funktioniert.
                  Wenn das Konstrukt es tut, dann hätte ich die WHILE-Schleife die ich gerne hätte.