As TCC analyse la ligne de commande, il recherche le séparateur de commandes, commandes conditionnelles (|| et &&), espaces blancs (espaces, tabulations et virgules), signes de pourcentage % qui indiquent les variables or fichier batch paramètres à élargir, et redirection et tuyauterie caractères >, <et |.

 

Normalement, ces caractères spéciaux ne peuvent pas être transmis à une commande dans le cadre d'un paramètre. Cependant, vous pouvez inclure n'importe quel caractère spécial dans un paramètre en plaçant l'intégralité du paramètre entre guillemets simples [`] ou des guillemets doubles ["]. Bien que les guillemets arrière et les guillemets doubles vous permettent de créer des paramètres incluant des caractères spéciaux, ils ne fonctionnent pas de la même manière.

 

Aucun développement d'alias ou de variable n'est effectué sur un paramètre entouré de guillemets arrière. Les symboles de redirection à l’intérieur des guillemets arrière sont ignorés. Les guillemets arrière sont supprimés de la ligne de commande avant l'exécution de la commande.

 

Aucune expansion d'alias n'est effectuée lorsqu'une expression est placée entre guillemets doubles. Les symboles de redirection entre guillemets doubles sont ignorés. Cependant, une expansion variable is effectué dans les expressions entre guillemets doubles. Les guillemets eux-mêmes seront transmis à la commande dans le cadre du paramètre.

 

Par exemple, supposons que vous ayez un fichier batch CHKNAME.BTM qui attend un nom comme premier paramètre (%1). Normalement, le nom est un seul mot. Si vous devez transmettre un nom de deux mots contenant un espace à ce fichier batch, vous pouvez utiliser la commande :

 

chkname `MON NOM`

 

Dans le fichier batch, %1 aura la valeur MON NOM, y compris l'espace. Les guillemets arrières ont provoqué TCC pour transmettre la chaîne au fichier de commandes en tant que paramètre unique. Les guillemets maintiennent les caractères ensemble et réduisent le nombre de paramètres dans la ligne.

 

Pour un exemple plus complexe, supposons que le fichier batch CITATIONS.BAT contient les commandes suivantes :

 

@ Echo off

écho Arg1 = %1

écho Arg2 = %2

écho Arg3 = %3

 

et que la variable d'environnement FORVAR a été définie avec cette commande :

 

set FORVAR=pour le

 

Maintenant, si vous entrez la commande

 

cite `Il est maintenant temps %forvar` tout va bien

 

La sortie de CITATIONS.BAT ressemblera à ceci:

 

Arg1 = Il est maintenant temps %forvar

Arg2 = tout

Arg3 = bon

 

Mais si vous entrez la commande :

 

cite "Il est maintenant temps %forvar" tout va bien

 

La sortie de CITATIONS.BAT ressemblera à ceci:

 

Arg1 = "Il est maintenant temps de"

Arg2 = tout

Arg3 = bon

 

Notez que dans les deux cas, les guillemets maintiennent les caractères ensemble et réduisent le nombre de paramètres dans la ligne.

 

L'exemple suivant comporte 7 paramètres de ligne de commande, alors que les exemples ci-dessus n'en ont que 3 :

 

citations Il est maintenant temps %%forvar tout va bien

 

(Les signes double pourcentage sont nécessaires dans chaque cas car le paramètre est analysé deux fois, une fois lorsqu'il est transmis au fichier batch et de nouveau dans la commande ECHO.)

 

Lorsqu'un alias est défini dans un fichier batch ou à partir de la ligne de commande, son paramètre peut être placé entre guillemets pour empêcher l'expansion de paramètres remplaçables, de variables et de plusieurs commandes jusqu'à ce que l'alias soit invoqué. Voir ALIAS pour en savoir plus.

 

Vous pouvez désactiver et réactiver les guillemets arrière et doubles avec le RÉGLAGES Commande /X.