MS-DOS Les paramètres
En
appelant un fichier de commandes, il est possible de passer des fichiers en
paramètres.
Dans
l’invite de commandes, il vous suffira de séparer le nom du fichier de
commandes de ses paramètres par le caractère espace.
La
syntaxe :
Nom_fichier_de_commandes
param1 param2 param3 ETC
Ensuite,
dans le fichier de commandes recevant les paramètres vous pourrez traiter les
paramètres de la façon suivante :
%1
pour le premier paramètre,
%2
pour le deuxième paramètre,
%3
pour le troisième paramètre ETC
Par
exemple :
Créez
un fichier de commandes qui supprimera le deuxième fichier passé en paramètre
si, et seulement si, le premier fichier passé en paramètre existe dans le
répertoire de travail.
A
ce fichier de commandes, donnez-lui le nom Sup.bat
Par
conséquent, vous exécuterez le fichier en saisissant la syntaxe suivante :
Sup
fichier1.Txt Fichier2.Txt
Voici
ce qu’il faudra écrire dans Sup.Bat :
@echo off
if exist %1 del %2
Le décalage :
Mais
pour faciliter le traitement de paramètres de façon globale, il vous est
possible d’utiliser le décalage de paramètres par l’intermédiaire de la
commande SHIFT.
Ainsi,
dès le début de l’exécution du fichier de commandes, %1 prendra la valeur du
premier paramètre, dès lors que la commande SHIFT sera rencontrée, %1 prendra
la valeur du deuxième paramètre et ainsi de suite.
Il
vous sera donc possible de traiter l’intégralité des paramètres à l’intérieure
d’une boucle.
La
condition de sortie de la boucle sera, lorsqu’à un moment donné, le décalage
affectera une chaîne vide dans %1, c’est-à-dire que tous les paramètres auront
été traités.
La
commande pour vérifier si %1 est vide, sera If.
Le
code qui suit est un fichier de commandes qui permet de supprimer tous les
fichiers passés en paramètres.
Dès
le départ de l’exécution, la commande If vérifie si %1 est vide. Si oui, elle
renvoie l’exécution à la fin du fichier, à l’étiquette Fin.
Sinon,
la suppression du fichier contenu dans %1 est réalisée.
Ensuite,
%1 prend la valeur du deuxième paramètre grâce au décalage réalisé par SHIFT.
L’exécution
est renvoyée à l’étiquette Control, le test est effectué et ainsi de suite.
echo off
:Controle
if
"%1"=="" goto Fin
Del
%1
Shift
Goto
Controle
:Fin
echo
Suppression terminée
Philippe
BOULANGER