.drill

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

La commande .drill vous permet d'effectuer une boucle sur une commande, et d'exécuter la commande une fois pour chaque membre d'une série de valeurs. Vous pouvez indiquer les valeurs sur la ligne de commande, ou les extraire d'une variable d'environnement ou d'un registre. Lorsque le système exécute une commande .drill, le système utilise la syntaxe .drill pour générer une série de lignes de commande et les envoie à l'agent pour qu'elles soient exécutées.

Par exemple, la commande .drill "A,B,C,D" "echo value $1" crée les commandes suivantes :
echo value A 
echo value B 
echo value C 
echo value D

Groupage

Vous pouvez constituer des groupes de valeurs et référencer plusieurs valeurs dans chaque groupe avec la syntaxe $n. $1 désigne la première valeur du groupe, $2 la seconde valeur du groupe, etc. Par exemple, .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]" crée les commandes suivantes :
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]
Remarque : Il n'y a pas de caractère de regroupement par défaut. Il existe un caractère de séparation par défaut, qui est la virgule. Si vous n'indiquez pas de valeur pour grouped by, le système cherche parmi les valeurs fournies séparées par le caractère de séparation et considère toutes les chaînes sous cette forme comme des valeurs uniques. Par exemple, la commande .drill "(A,B),(C,D)" "echo $1 $2" résout les commandes suivantes :
echo (A 2 
echo B) 2
echo (C 2
echo D) 2

Sources de données

Vous pouvez choisir entre plusieurs emplacements à partir desquels la commande .drill extrait les données sur lesquelles elle effectue une boucle. Le premier paramètre de la commande est la source des données. Vous pouvez inclure le mot de commande optionnel "through" pour indiquer la source des données.
  • Vous pouvez répertorier explicitement les données de la ligne de commande, comme dans la commande suivante, qui effectue une boucle sur les valeurs un, deux, et trois :
    .drill through "one,two,three" exec "echo $1"
  • Vous pouvez extraire les données d'une variable d'environnement. La commande suivante suppose que la variable d'environnement FILENAMES est une liste de fichiers séparés par des virgules, et utilise une commande DOS pour supprimer tous les fichiers de la liste :
    .drill through $FILENAMES exec "del $1"
  • Vous pouvez extraire les données d'un registre ou d'un registre de projet. Si le registre A contient une liste de noms de fichiers séparés par des virgules, alors la commande suivante émise vers un système Linux écrit le contenu de chaque fichier :
    .drill -r RegisterA exec "cat $1"
    alors que l'exemple suivant effectue la même opération, mais utilise un registre de projet :
    .drill -rp ProjectRegisterA exec "cat $1" 

Commentaires en retour