:SWITCH ... :CASE ... :OTHER ... :ENDSWITCH
Verwenden Sie das Script-Statement :SWITCH, um verschiedene Script-Zeilen basierend auf dem Wert einer Variablen auszuführen. Die Variable repräsentiert eine Bedingung, und der :SWITCH-Block enthält eine oder mehrere :CASE-Statements. Der Case bestimmt, welche Statements ausgeführt werden sollen, wenn die Variable einen bestimmten Wert hat. Definieren Sie für jeden Wert der Variablen Cases, für die verschiedene Statements verarbeitet werden sollen.
Tipp: Verwenden Sie :IF... :ELSE... :ENDIF-Statements, um Ausdrücke auszuwerten, wenn Sie eine einzelne Bedingung haben.
Syntax
:SWITCH Variable
:CASE Value1
[Statements]
[:CASE Value2
[Statements]
...
]
[:OTHER
[Statements]
...
]
:ENDSWITCH
Parameter
- :SWITCH
Definiert einen Block von Statements, die in verschiedenen Fällen ausgeführt werden - Variable
Name der zu überprüfenden Variablen, um festzustellen, welcher Fall zutrifft
Format: Script-Literal oder Script-Variable - Statements
(Optional) Ein oder mehrere Statements, die zu verarbeiten sind, wenn der Fall zutrifft
Format: Script-Statement - :CASE
Startet den Block von Statements zum Ausführen, wenn die Variable den für den Fall definierten Wert hat
Hinweis: Wenn Sie komplexe Ausdrücke verwenden und mehrere :CASE-Statements mit einem OR-Operator verbinden möchten, schreiben Sie die :CASE-Statements nacheinander, ohne Statements dazwischen. - Value1, Value2
Bedingungen oder Werte der Variablen, die bestimmen, welcher Fall zutrifft
Format: Script-Literal, Script-Variable, komplexer Ausdruck oder Script-Funktion - :OTHER
(Optional) Startet einen Block von Statements, die ausgeführt werden, wenn keiner der definierten Fälle zutrifft
Hinweis: Schreiben Sie die :OTHER-Statements nach den :CASE-Statements. - :ENDSWITCH
Beendet den :SWITCH Block
Hinweise:
-
Der Wert für einen Fall kann ein arithmetischer Ausdruck sein.
Beispiel
:SWITCH &NUM#
:CASE 3*(5-2)
: PRINT "&NUM# = 9"
:ENDSWITCH -
Um Operatoren (<, >, <>, <=, >=, =) und zwischen zu verwenden, um komplexe Ausdrücke und Wertebereiche für einen Fall zu definieren, geben Sie anstelle des Variablennamens den String „Y“ an.
Beispiel
:SET &STATUS# = GET_STATISTIC_DETAIL(&RUNID#,STATUS)
:SWITCH "Y"
:CASE &STATUS# between 1300 and 1599
:CASE &STATUS# between 1700 and 1799
: PRINT "The task &RUNID# is active."
:CASE &STATUS# between 1600 and 1699
: PRINT "The task &RUNID# is in a waiting condition."
:CASE &STATUS# between 1800 and 1899
: PRINT "The task &RUNID# has aborted."
:CASE &STATUS# >= 1900
: PRINT "The task &RUNID# has successfully ended."
:ENDSWITCH
Wichtig! Mit diesem Script-Statement können Sie die vordefinierte Variable &$PLATFORM# verwenden. Wenn Sie diese vordefinierte Variable in einem generischen Job-Objekt verwenden, müssen Sie auch die Variable &AGENT# in Ihrem Script definieren. Das generische Job-Objekt hat beim Erstellen keinen definierten Host, so dass das Script einen Fehler zurückgibt, wenn Sie den Host nicht angeben. Weitere Informationen finden Sie unter Vordefinierte Variablen für System- und Objektwerte.
Beispiele
Folgendes Beispiel ermittelt den aktuellen Wochentag als Zahl. Das Script verwendet die Nummer des Wochentages, um einen bestimmten Job nur montags und freitags zu starten.
:SET &DATE# = SYS_DATE_PHYSICAL("DD.MM.YYYY")
:SET &WEEKDAY# = WEEKDAY_NR("DD.MM.YYYY:&DATE#")
:SWITCH &WEEKDAY#
:CASE 1
: SET &ACT# = ACTIVATE_UC_OBJECT(JOBS.MONDAY, WAIT)
:CASE 5
: SET &ACT# = ACTIVATE_UC_OBJECT(JOBS.FRIDAY, WAIT)
:OTHER
: PRINT "No Processing."
:ENDSWITCH
Das folgende Script in einem generischen Auftragsobjekt definiert Bedingungen basierend auf der Plattform, auf der der Auftrag ausgeführt wird:
:SWITCH&$PLATFORM#
:CASE"WINDOWS"
! insert these lines in your script to determine if an error occurred
! @set retcode=%errorlevel%
! @if NOT %ERRORLEVEL% == 0 goto :retcode
!
:CASE"UNIX"
:OTHER
:ENDSWITCH
Siehe auch: