Le regroupement de commandes vous permet de regrouper logiquement un ensemble de commandes en les mettant entre parenthèses.

 

Il existe deux utilisations principales du regroupement de commandes. La première consiste à exécuter plusieurs commandes dans un endroit où normalement une seule commande est autorisée. Par exemple, supposons que vous vouliez exécuter deux REN commandes dans tous les sous-répertoires de votre disque dur. Vous pourriez procéder ainsi :

 

ren global *.wx1 *.wxo

ren global *.tx1 *.txo

 

Mais avec le regroupement de commandes, vous pouvez faire la même chose en une seule commande :

 

global (ren *.wx1 *.wxo & ren *.tx1 *.txo)

 

Les deux REN les commandes entre parenthèses semblent GLOBAL comme s'il s'agissait d'une seule commande, les deux commandes sont donc exécutées pour chaque répertoire, mais les répertoires ne sont analysés qu'une seule fois, et non deux, ce qui permet généralement de gagner du temps.

 

Ce type de regroupement de commandes est plus utile avec le SAUF, POUR, GLOBALet IF commandes. Lorsque vous utilisez cette approche par lots fichier, vous devez soit placer toutes les commandes du groupe sur une seule ligne, soit placer la parenthèse ouvrante à la fin d'une ligne et placer les commandes sur les lignes suivantes. Les exemples 1 et 2 ci-dessous fonctionneront correctement, mais Exemple 3 Ne fera pas:

 

Exemple 1 (correct):

 

pour %f dans (1 2 3) (écho bonjour %f et écho au revoir %f)

 

Exemple 2 (correct):

 

pour %f dans (1 2 3) (

 écho bonjour %f

 écho au revoir %f

)

 

Exemple 3 (incorrect) :

 

pour %f dans (1 2 3) (écho bonjour %f

 écho au revoir %f)

 

Si les exemples ci-dessus sont tapés à la commande ligne, TCC publiera un Plus? invite en réponse à chaque ligne jusqu'à ce que le groupe de commandes soit fermé (c'est-à-dire que la parenthèse finale soit reconnue), comme indiqué ci-dessous.

 

La deuxième utilisation courante du regroupement de commandes consiste à rediriger l'entrée ou la sortie de plusieurs commandes sans utiliser de manière répétée le redirection symboles. Par exemple, considérons le fragment de fichier batch suivant qui place certaines lignes d'en-tête (y compris la date du jour) et des affichages de répertoire dans un fichier de sortie à l'aide de la redirection. La première ECHO La commande crée le fichier en utilisant > et les autres commandes s'ajoutent au fichier en utilisant >> :

 

echo Fichiers de données %_date > liste de fichiers

dir *.dat >> liste de fichiers

écho. >> liste de fichiers

echo Fichiers texte %_date >> liste de fichiers

dir *.txt >> liste de fichiers

 

Grâce au regroupement de commandes, ces commandes peuvent être écrites beaucoup plus simplement. Saisissez cet exemple sur une seule ligne :

 

(echo Fichiers de données %_date & dir *.dat & echo `` & echo Fichiers texte %_date & dir *.txt) > liste de fichiers

 

La redirection, qui apparaît en dehors des parenthèses, s'applique à toutes les commandes entre parenthèses. Étant donné que la redirection n'est effectuée qu'une seule fois, les commandes s'exécuteront légèrement plus rapidement que si chaque commande était saisie séparément. La même approche peut être utilisée pour la saisie redirection et tuyauterie.

 

Vous pouvez également utiliser le regroupement de commandes dans un fichier de commandes ou à l'invite pour diviser les commandes sur plusieurs lignes. Ce dernier exemple est similaire à l'exemple de redirection ci-dessus, mais est saisi à l'invite. Noter la Plus? invite après chaque ligne incomplète. Aucune des commandes n'est exécutée tant que le groupe de commandes n'est pas complété par la parenthèse fermante. Cet exemple fait ne sauraient doivent être inscrits sur une seule ligne :

 

[c:\] (faire écho aux fichiers de données %_date

Plus? rép *.dat

Plus? écho.

Plus? echo Fichiers texte %_date

Plus? dir *.txt) > liste de fichiers

[c:\]

 

Limites

 

Un groupe de commandes entre parenthèses est comme une longue ligne de commande. La longueur totale du groupe n'est limitée que par votre RAM disponible.

 

Vous ne pouvez pas utiliser TEXTE / FIN DE TEXTEou GOTO or GOSUB étiquettes dans un groupe de commandes.

 

Chaque ligne que vous tapez à l'invite normale ou au Plus? l'invite, et chaque commande individuelle dans la ligne, doivent être dans les limites habituelles limite de longueur de ligne de commande.