Durch Angabe des Schlüsselwortes "batch" wird die Batch-Schnittstelle der CLI aufgerufen. In diesem Fall erwartet die CLI einen Dateinamen (filename), der durch mindestens ein Leerzeichen vom Schlüsselwort "batch" getrennt ist. Dieser Dateiname kann entweder ein absoluter Dateiname oder ein relativer Dateiname sein. Er bezeichnet eine Datei, die eine Liste mit CLI-Befehlen enthält, die durch diesen Aufruf ausgeführt werden sollen.
Die CLI verarbeitet die Batch-Datei wie folgt. Zunächst stellt sie für den angegebenen Benutzer eine Sitzung mit dem angegebenen Manager (beispielsweise einem Standard-Manager) her (vgl. login). Anschließend liest sie die Batch-Datei Zeile für Zeile. Eine Zeile einer Batch-Datei kann mehr als einen Befehl enthalten. Andererseits kann sich ein Befehl über mehr als eine Zeile erstrecken. Zur besseren Lesbarkeit wird empfohlen, einen Befehl pro Zeile einzugeben. Die CLI liest die Datei von Anfang an, bis sie den nächsten CLI-Befehl erkennt oder das Ende der Datei erreicht, je nachdem, was zuerst eintritt. Diese gelesenen Informationen (ohne den möglichen am Ende angegebenen Befehl) werden als CLI-Befehl mit seinen Parametereinstellungen interpretiert und ausgeführt.
Nach einer erfolgreichen vollständigen Ausführung wird das Scannen auf den nächsten Befehl oder das Ende der Datei fortgesetzt, und der gescannte Befehl wird ebenfalls ausgeführt. Dies wird fortgesetzt, bis ein Fehler auftritt oder das Ende der Datei erreicht ist. Das folgende Beispiel zeigt den Inhalt einer Batch-Datei:
regsw -item=prod_1 -version=1.0 -path=/products/prod_1 ~procedures=/products/proc_1 regsw -item=prod_2 -version=1.1 -path=/products/prod_2 ~procedures=/products/proc_2
Diese Batch-Datei registriert zwei Produkte bei SD. Die CLI scannt zunächst die Datei, bis sie die zweite regsw findet. Anschließend verarbeitet sie den Befehl "regsw" für "prod_1" mit den Parametern "Element", "Version", "Pfad" und "Prozeduren". Wenn dieser Vorgang erfolgreich war, scannt sie den Rest der Datei bis zu deren Ende und verarbeitet auch die zweite regsw. Wenn die erste regsw fehlschlägt, wird die zweite regsw nicht ausgeführt, und die CLI wird beendet.
Zu Dokumentationszwecken ist es möglich, einer Batch-Datei Kommentare hinzuzufügen. Kommentare werden durch das Hash-Zeichen "#" angegeben. Alles, was einem Hash-Zeichen bis zum Ende der Zeile nachgestellt ist, wird von der CLI als Kommentar verstanden und ignoriert. Aufgrund der speziellen Bedeutung von "#" sollte dieses Zeichen in Parametereinstellungen vermieden werden. Dennoch kann es passieren, dass ein Parameter ein Hash-Zeichen enthält. Schließen Sie in diesem Fall den Parameterwert in Anführungszeichen ein, um zu verhindern, dass die CLI das Zeichen als Beginn eines Kommentars interpretiert. Die Inhalte der obigen Datei können daher wie folgt umgewandelt werden:
# Register product 1 regsw -item=prod_1 -version=1.0 -path=/products/prod_1 ~procedures=/products/proc_1 -comment=”product_1 for department #1” # Register product 2 regsw -item=prod_2 -version=1.1 -path=/products/prod_2 ~procedures=/products/proc_2 -comment=”product_2 for department #100”
Übrigens sollten nicht nur Parameterwerte, die ein "#" enthalten, in Anführungszeichen eingeschlossen werden, sondern auch Werte, die Leerzeichen enthalten.
Den Parametern in den obigen Beispielen ist ein Bindestrich "-" vorangestellt. Es wird empfohlen, Parameter auf diese Weise anzugeben; dies ist jedoch keine Notwendigkeit. Jedoch sollte der Bindestrich in Fällen mehrdeutiger Parameter, die irrtümlicherweise für einen Befehl gehalten werden könnten, gesetzt werden. "stagingServer" ist ein solcher Parameter, der auch als CLI-Befehl existiert.
Wie oben angegeben, beendet die CLI in der Regel die Batch-Verarbeitung, wenn die Ausführung eines Befehls fehlschlägt. Manchmal sind die Befehle einer Batch-Datei aber voneinander unabhängig. Wie im obigen Beispiel können die Produkte prod_1 und prod_2 unabhängig sein. Wenn also die Registrierung von prod_1 fehlschlägt, hat dies keine Auswirkungen auf die Registrierung von prod_2, und das Produkt prod_2 kann somit registriert werden. Durch Einstellen der Umgebungsvariablen
set SDCMD_CONTINUE=ON (Windows)
export SDCMD_CONTINUE=ON (Linux, bash)
kann die CLI gezwungen werden, Fehler zu ignorieren und die Verarbeitung mit dem nächsten Befehl aus der Datei fortzusetzen. Wenn diese Variablen eingestellt sind, versucht die CLI, prod_2 auch dann zu registrieren, wenn die Registrierung von prod_1 fehlschlägt.
Die CLI zeichnet die verarbeiteten Befehle und die von den Befehlen bereitgestellte Ausgabe in stdout auf. Diese Ausgabe kann problemlos zur weiteren Analyse durch ein anderes Skript in eine Datei umgeleitet werden. Hier ein Beispiel:
002 regsw “item=prod_1” “version=1.0” “path=/products/prod_1” “procedures=/products/proc_1” “comment=product_1 for department #1” Befehl wird verarbeitet ... SDCMD<A000000>: OK 004 regsw “item=prod_2” “version=1.1” “path=/products/prod_2” “procedures=/products/proc_2” “comment=product_2 for department #100” Befehl wird verarbeitet ... SDCMD<A000000>: OK
Die CLI zeichnet die gelesenen Befehle und die Parametereinstellungen so auf, wie es von der CLI verstanden wird. Die Ziffer vor dem Befehl bezieht sich auf die Zeile in der Batch-Datei, in der der Befehl gefunden wurde.
Alle gültigen Befehle der CLI sind an der Batch-Schnittstelle verfügbar.
|
Copyright © 2013 CA.
Alle Rechte vorbehalten.
|
|