cmdline
各 cmdline は、1 つ以上の ObjectScript コマンドを含む文字列でなければなりません。場合によっては、コマンドとその次のコマンドの間にスペースを 2 つ挿入する必要があります。cmdline 文字列には、最初にタブ文字、または最後に [Enter] が含まれていてはなりません。cmdline 文字列内で引用符を指定するには、二重引用符を使用します。以下の例は、2 つのコマンドを含む、単一の cmdline を示しています。
XECUTE "WRITE ""hello "",! WRITE ""world"",!"
cmdline は文字列なので、複数のコード行に分割することはできません。単一の cmdline 引数は、以下のように、連結演算子で結合された個別の文字列に分割できます。
XECUTE "WRITE ""hello "",!"_
" WRITE ""world"",!"
単一の cmdline 引数は、以下のように、個別の複数のコンマ区切り cmdline 引数に分割できます。
XECUTE "WRITE ""hello "",!",
"WRITE ""world"",!"
cmdline の最大長は、次の考慮事項に左右されます。InterSystems IRIS は、ソース cmdline 文字列とその生成オブジェクト・コードの両方を単一の文字列として格納します。結果として生成されたこの文字列は、InterSystems IRIS の文字列の最大長を超えることはできません。詳細は、"ObjectScript の使用法" の “データ型とデータ値” の章の "最大文字列長" を参照してください。
/* text */ 形式のコメントを、cmdline 内、連結された cmdline 文字列の間、またはコンマ区切りの cmdline 引数の間に埋め込むことができます。
XECUTE "SET x=""hello "" /* 1st val */ SET y=""world"" /* 2nd val */ "_
" WRITE x,! /* part of 1st cmdline */ ",
"WRITE y,! /* 2nd cmdline */ "
cmdline は、NULL 文字列 ("") に評価される場合があります。この場合、InterSystems IRIS は何も動作せず、次の xecutearg (存在する場合) で実行を継続します。
パラメータを渡す場合、fparams 仮パラメータ・リストは cmdline コマンドの前に置き、両方の要素を同じ引用符で囲む必要があります。cmdline と fparams を 1 つ以上のスペースで区切ることをお勧めしますが、スペースは必須ではありません。
SET x=1
XECUTE ("(in,out) SET out=in+3", x, .y)
WRITE y
QUIT
既定では、cmdline で使用するすべてのローカル変数は、パブリック変数です。変数を設定するコマンドを中括弧で囲むことにより、プライベート変数としてコマンド行内で変数を指定することができます。次に例を示します。
SET x=1
XECUTE ("(in,out) { SET out=in+3 }", x, .y)
WRITE y
QUIT
この特定の変数のプライベート変数の指定は、fparams 仮パラメータ・リストのすぐ後に角括弧で囲んでパブリック変数リストを指定することによって上書きできます。以下の例では、変数 x を含むパブリック変数リストを指定しています。
SET x=1
XECUTE ("(in,out) [x] { SET out=in+3 }", x, .y)
WRITE y
QUIT