.drill

.drill [through] 
       <"var1,var2,var3"|$EnvVar|-r[p] Register> 
       [gr[ouped by] "{}"] 
       [sep[arated by] ","] 
       [exec] "Command $1 $2"

.drill コマンドによりコマンドをループすることができ、一連の値の 各メンバーに対してコマンドを一度実行します。値はコマンド行で指定するか、 環境変数またはレジスターから引き出すことができます。システムが .drill コマンドを 実行する場合、システムは .drill 構文を使用して一連のコマンド行を構成し、 実行するためにエージェントに送信します。

例えば、コマンド .drill "A,B,C,D" "echo value $1" は以下のコマンドを作成します。
echo value A 
echo value B 
echo value C 
echo value D

グループ化

$n 構文を使用して、 値をグループ化し、各グループで複数の値を参照することができます。$1 がグループ内の最初の値を参照し、$2 がグループ内の 2 番目の値を参照する、などです。 例えば、.drill through "(A,B,C,D,E),(B,C,D,E,F),(C,D,E,F,G)" grouped by "()" separated by "," exec "echo 1[$1] 2[$2] 3[$3] 4[$4] 5[$5]" は、以下のコマンドを作成します。
echo 1[A] 2[B] 3[C] 4[D] 5[E] 
echo 1[B] 2[C] 3[D] 4[E] 5[F] 
echo 1[C] 2[D] 3[E] 4[F] 5[G]
注: デフォルトの グループ化文字はありません。デフォルトの分離文字はコンマです。grouped by を 指定しない場合、システムでは、提供された値は分離文字で 分離されたものとして調べられ、そのような各ストリングは単一値と みなされます。例えば、コマンド .drill "(A,B),(C,D)" "echo $1 $2" は以下のコマンドに解決されます。
echo (A 2 
echo B) 2
echo (C 2
echo D) 2

データ・ソース

ループするデータを .drill コマンドが取得する際に指定できる、いくつかのオプションがあります。このコマンドの 最初のパラメーターはデータ・ソースです。オプションのコマンド・ワード "through" を 含めて、データ・ソースを示すことができます。
  • コマンド行にデータを明示的にリストすることができ、以下に示すコマンドでは、 値 one、two、および three をループします。
    .drill through "one,two,three" exec "echo $1"
  • データは環境変数から引き出すことができます。以下のコマンドでは、 環境変数 FILENAMES はコンマで区切られたファイルのリストであると想定され、 DOS コマンドを使用してリスト内のすべてのファイルが削除されます。
    .drill through $FILENAMES exec "del $1"
  • データはレジスターまたはプロジェクト・レジスターから引き出すことができます。RegisterA に コンマで区切られたファイル名のリストが含まれる場合、 Linux システムに発行された以下のコマンドは各ファイルの内容を書き出します。
    .drill -r RegisterA exec "cat $1"
    以下の 例は同じことを実行しますが、プロジェクト・レジスターを使用しています。
    .drill -rp ProjectRegisterA exec "cat $1" 

フィードバック