Comme les alias, les fonctions définies par l'utilisateur et les programmes d'application, les fichiers batch peuvent examiner la ligne de commande utilisée pour les invoquer. La queue de commande (tout ce qui se trouve sur la ligne de commande après le nom du fichier batch ou de l'alias) est séparée en paramètres positionnels individuels (également appelés paramètres ouvariables batch ) en recherchant les espaces, les tabulations, les virgules et les signes égaux (=) qui les séparent. (Le séparateur = peut être désactivé en définissant la directive "CMDBatchDelimiters=No" dans votre fichier TCMD.INI). Pour les alias et les fonctions, une barre oblique (/) marque le début d'un nouveau paramètre, par exemple la chaîne xyz/abc est séparée en paramètres foo et /abc.
Ces paramètres sont numérotés de %1 à %4095. %1 fait référence au premier paramètre de la ligne de commande, %2 au deuxième, et ainsi de suite. C'est au fichier batch de déterminer la signification de chaque paramètre. Vous pouvez utiliser des guillemets doubles pour passer des espaces, des tabulations, des virgules et d'autres caractères spéciaux dans un paramètre de fichier batch ; voir Citations de paramètres pour plus de détails.
Les paramètres auxquels il est fait référence dans un fichier de commandes, mais qui sont absents de la ligne de commande, apparaissent comme des chaînes vides dans le fichier de commandes. Par exemple, si vous lancez un fichier batch et que vous indiquez deux paramètres sur la ligne de commande, toute référence dans le fichier batch à %3, ou à un paramètre de numéro supérieur, sera interprétée comme une chaîne vide.
Un fichier batch peut utiliser les paramètres spéciaux indiqués dans le tableau ci-dessous :
paramètre |
valeur |
%0 |
le nom du fichier batch tel qu'il est saisi sur la ligne de commande |
%# |
le nombre de paramètres de la ligne de commande, modifié par SHIFT |
%n$ |
laqueue de la commande commençant par le paramètre n, modifiée par SHIFT |
%-n$ |
la queue de la commande,du paramètre 1 à n - 1 |
%$ |
la queuecomplète de la commande, modifiée par SHIFT |
%* |
la queue de commande complète, non modifiée par SHIFT |
%@ |
les arguments du fichier batch (comme %*), mais ils seront tous mis entre guillemets. |
Par exemple,%3$ désigne le troisième paramètre et tous les paramètres suivants . Les valeurs de %#, %n$, %-n$ et %$ changeront si vous utilisez la commande SHIFT. Pour émuler CMD, SHIFT n'affecte pas la valeur de %*.
Par exemple, si votre fichier batch interprète le premier paramètre comme un nom de sous-répertoire, la ligne suivante permet de se déplacer dans le répertoire spécifié :
cd %1
Un fichier batch plus convivial vérifierait que le répertoire existe et prendrait une mesure spéciale s'il n'existe pas :
iff isdir %1 then
cd %1
else
echo Subdirectory %1 does not exist!
quit
endiff
(Voir les commandes IF et IFF ).
Lesfichiers batch peuvent également utiliser des variables d'environnement, des variables internes et des fonctions variables.
Lesparamètres des fichiers batch peuvent également utiliser la syntaxe spéciale de compatibilité CMD.