Previous Topic

Next Topic

Book Contents

Book Index

Beispiele für Case-Anweisung

Die folgenden Case-Anweisungen treffen zu, wenn der Server den FTP-Code 226 oder 231 meldet.

case (226, 231) :

Die folgenden Case-Anweisungen sind zutreffend, wenn der Server den FTP-Code 226 oder 231 meldet oder wenn der gemeldete Code zwischen 250 und 299 liegt, wobei die Grenzwerte jeweils zum betreffenden Bereich zählen. Entsprechend gilt die Anweisung für den Wert 250 sowie für die Werte 251, 252 usw. bis 299

case (226, 231, 250..299) :

Die folgenden Case-Anweisungen treffen zu, wenn der Server einen FTP-Code von 300 bis 399 meldet und die gemeldete Zeichenfolge den Text "email address" enthält.

case (300..399) and contains(lastreply, "email address") :

Die folgenden Case-Anweisungen treffen zu, wenn der Server einen FTP-Code von größer oder gleich 500 meldet und die gemeldete Zeichenfolge die angegebene Fehlermeldung enthält

case (500..999) and contains(lastreply, "user %HostUserId cannot login.") :

Wenn ein Fall mehrere Bedingungen enthält, müssen diese durch and getrennt sein. Der Operator and bestimmt, dass alle angegebenen Bedingungen erfüllt sein müssen. Auf das letzte Beispiel bezogen heißt dies, dass der FTP-Code zwischen 500 und 599 liegen muss UND dass die letzte Antwort die angegebene Zeichenfolge enthalten muss. Beide Bedingungen müssen also erfüllt sein. Ist eine Bedingung nicht erfüllt, wird die Case-Anweisung nicht ausgeführt.

Der Operator not kehrt das Ergebnis einer Funktion um. Nehmen wir z.B. an, wir möchten sicherstellen, dass eine bestimmte Zeichenfolge in der letzten Antwort nicht vorkommt. Zum Beispiel:

case (500..599) and not contains(lastreply, "server is busy") :

Der Operator or kommt nicht vor. Nach demselben Muster können auch mehrere Case-Anweisungen verwendet werden.

Die folgende Case-Anweisung trifft zu, wenn das Zeitlimit für die Anweisung send überschritten wurde.

case timeout :

Der Fall any trifft immer zu und sollte deshalb ggf. am Ende der Liste stehen. Weitere Anweisungen im Anschluss an diesen Fall werden nicht berücksichtigt.

Die folgende Case-Anweisung beispielsweise trifft immer zu.

case any:

Bei sich überschneidenden Case-Anweisungen - d.h. wenn innerhalb einer Liste mehrere Anweisungen auf die Server-Antwort zutreffen - wird nur die erste ausgeführt.

Beispiel:

case (200..299) and contains(lastreply, "please send user account") :

...
case (200..299) :
...

Wenn die Anweisung mit der Funktion contains hinter einem Fall ohne diese Anweisung stünde, würde diese Anweisung nicht berücksichtigt.

See Also

FireScript-Anweisungen

Switch-Anweisungen

Case-Anweisungen

Continue-Anweisungen

Anweisungen jump und label

Anweisung return

Automatisch