前のトピック: ローカル次のトピック: パイプ


batch

CLI のバッチ インターフェースは「batch」キーワードの指定により呼び出されます。 この場合、CLI では、「batch」キーワードとファイル名(filename)が 1 つ以上の空白で区切られていることが想定されています。 このファイル名は、絶対ファイル名または相対ファイル名のいずれかにすることができます。 このファイルは、この呼び出しによって実行される CLI コマンドのリストが含まれているファイルです。

CLI では、バッチ ファイルは以下のように処理されます。

  1. 指定されたユーザについて、指定されたマネージャ(デフォルト マネージャなど)とのセッションを確立します (login を参照)。
  2. バッチ ファイルを行ごとに読み取ります。 バッチ ファイルの 1 行には複数のコマンドを含めることができます。 コマンドは、複数行にわたることができます。 読みやすくするために、コマンドは 1 行に 1 つずつ記述することをお勧めします。
  3. CLI では、次の CLI コマンドを識別するか、ファイルの終わりに到達するまで、ファイルを読み取ります。 読み取られたこの情報(最後にコマンドが特定されていない)は、そのパラメータ設定と共に CLI コマンドとして解釈され、実行されます。

実行後、次のコマンドまたはファイルの終わりのスキャンが継続され、スキャンされたコマンドも実行されます。 スキャンは、エラーが発生するか、またはファイルの終わりに達するまで続きます。 以下の例は、バッチ ファイルの内容を示しています。

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

このバッチ ファイルでは、2 つの製品が SD に登録されます。 CLI は、まず 2 つ目の regsw を見つけるまでファイルをスキャンし、prod_1 について、パラメータ項目の version、path、および procedures を使用して regsw コマンドを処理します。 これが成功した場合、残りのファイルが終わりまでスキャンされ、2 つ目の regsw も処理されます。 最初の regsw が失敗した場合、2 つ目の regsw は実行されずに CLI が終了します。

バッチ ファイルには、説明用にコメントを追加することができます。 コメントの先頭にはハッシュ記号(#)を付けます。 ハッシュ記号以降その行の後わりまでは、CLI によってコメントとして処理され、無視されます。 「#」には特殊な意味があるため、パラメータ設定では使用しないようにしてください。 パラメータにハッシュ記号が含まれている場合は、CLI がコメントの開始記号として解釈しないように、そのパラメータ値を引用符で囲みます。 上記のファイルの内容は、以下のように記述することができます。

# 製品 1 の登録 
"regsw -item=prod_1 -version=1.0 -path=/products/prod_1 ~procedures=/products/proc_1 -comment=""product_1 for department #1"""
# 製品 2 の登録
"regsw -item=prod_2 -version=1.1 -path=/products/prod_2 ~procedures=/products/proc_2 -comment=""product_2 for department #100"""

「#」が含まれるパラメータ値だけではなく、空白が含まれるパラメータ値も引用符で囲む必要があります。

例内のパラメータには、先頭にハイフンが付いています。 たとえば、「stagingServer」は CLI コマンドとしても存在するパラメータです。

CLI は、通常、コマンドの実行に失敗するとバッチ処理を終了します。 ただし、バッチ ファイルのコマンドは相互に依存していないことがあります。 前記の例のように、製品 prod_1 および prod_2 は相互に依存していません。 prod_1 の登録が失敗しても、このことは prod_2 の登録には影響を与えないため、製品 prod_2 は登録することができます。 以下の環境変数を設定するとします。

set SDCMD_CONTINUE=ON (Windows)
export SDCMD_CONTINUE=ON (Linux、bash)

この場合、CLI は、失敗を無視させることが可能で、ファイル内の次のコマンドを引き続き処理します。 これらの変数が設定されている場合、CLI は prod_1 の登録が失敗しても prod_2 を登録しようとします。

CLI では、処理されたコマンドおよびコマンド出力を標準出力(stdout)として記録します。 この出力は、別のスクリプトで詳細に分析するためにファイルにリダイレクトすることができます。 以下に例を示します。

002 regsw “item=prod_1” “version=1.0” “path=/products/prod_1” “procedures=/products/proc_1” “comment=product_1 for department #1”
コマンドが処理されます。
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”
コマンドが処理されます。
SDCMD<A000000>: OK

CLI は、読み取られたコマンドおよびパラメータ設定を記録します。 コマンドの前の数字は、バッチ ファイル内のコマンドが検出された行を示しています。

CLI の有効なコマンドはすべて、batch インターフェースで利用することができます。