<< Retour au sommaire

 

 

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