Utilisation de l’instruction SHIFT
L’instruction SHIFT peut être utile dans certains de vos fichiers de commandes.
SHIFT déplace les paramètres de ligne de commande de droite à gauche.
(Les paramètres de ligne de commande sont les paramètres inclus sur la ligne de commande utilisée pour exécuter votre fichier de commandes.) Cela vous donne un moyen, par exemple, de faire accepter à votre fichier de commandes un nombre variable de paramètres.
En interne, l’interpréteur de commandes numérote les éléments de la ligne de commande. Par exemple, considérez la commande suivante qui exécute un fichier batch nommé DOIT.BAT:
doit first second third fourth fifth
Dans ce cas, la commande est « doit », qui est suivie de cinq paramètres: premier, deuxième, troisième, quatrième et cinquième. L’interpréteur de commandes, en interne, numérote ces paramètres% 1 à% 5. En réalité, cependant, il existe un « paramètre » numéroté% 0: la commande (le nom du fichier batch) elle-même.
Pour voir comment cela fonctionne, créez votre propre fichier DOIT.BAT contenant les commandes suivantes:
@ECHO OFF CLS :TOP IF [%0]==[] GOTO :EOF ECHO %0 %1 %2 %3 %4 %5 SHIFT GOTO TOP
Le fichier de commandes désactive d’abord l’écho des commandes à l’écran, puis efface l’écran. Il met alors en place une boucle de commandes (de: TOP jusqu’à la fin du fichier) qui fait écho, à l’écran, les éléments de la ligne de commande puis décale (par l’utilisation de la commande SHIFT) tous les éléments vers la gauche. Après le décalage, l’élément% 0 est ignoré, l’élément% 1 devient% 0, l’élément% 2 devient% 1, et ainsi de suite. Lorsque vous exécutez le fichier de commandes, vous devriez voir la sortie suivante:
doit first second third fourth fifth first second third fourth fifth second third fourth fifth third fourth fifth fourth fifth fifth
Lorsque vous utilisez SHIFT dans vos propres fichiers de commandes, vous pouvez appeler le fichier avec un nombre variable de paramètres, puis passer à travers ces paramètres pour effectuer votre traitement.
Cette astuce (13198) s’applique à Windows 7, 8 et 10.