Utilisation de la commande CALL
Sommaire
I. Présentation
La commande CALL est une commande DOS permettant d'appeler un script Batch dans le script principal.
Pour vous aider à comprendre le fonctionnement, voici un exemple :
Nous allons créer 3 scripts Batch, un principal, et deux scripts annexes. L'utilisateur devra saisir 1 ou 2, si c'est 1, le script principal appellera le script annexe 1, si c'est 2, le script principal appellera le script annexe 2. Si un chiffre supérieur à 2 est saisi, un message d'erreur apparaît.
II. Création des deux scripts annexes (à appeler avec le CALL)
Étant donné que ce script sert uniquement à vous montrer l'utilisation de CALL, les deux scripts annexes afficheront uniquement un message du type "Je suis le Script numero X" où X sera le numéro du script annexe.
Il suffit de créez un fichier .bat et d'écrire le code suivant :
- Pour le script annexe 1 (Nom du fichier : ScriptAnnexe1.bat) :
@echo off echo Je suis le script numero 1
- Pour le script annexe 2 (Nom du fichier : ScriptAnnexe2.bat) :
@echo off echo Je suis le script numero 2
III. Maintenant que nous avons les deux scripts qui seront appelés par le script principal, il faut le créer
A. Créez un fichier .bat (dans notre cas il s'appelle test_call.bat)
B. On indique à l'utilisateur qu'il doit saisir 1 ou 2. Ce qu'il saisie sera rangé dans la variable Choix.
@echo off SET /p Choix=Saisissez 1 ou 2 :
C. On regarde la valeur de Choix pour déterminer ce que l'on fait
IF %Choix% == 1 CALL ScriptAnnexe1 IF %Choix% == 2 CALL ScriptAnnexe2 IF %Choix% GTR 2 ECHO Erreur de saisie
Ce qui nous donne :
Si l'utilisateur a saisi 1 alors on appelle le script ScriptAnnexe1
Si l'utilisateur a saisi 2 alors on appelle le script ScriptAnnexe2
Si l'utilisateur a saisi un nombre plus grand que 2 on écrit "Erreur de saisie".
D. On ajoute une pause à la fin du programme pouvoir voir le résultat
pause
E. Script principal complet
@echo off SET /p Choix=Saisissez 1 ou 2 : IF %Choix% == 1 CALL ScriptAnnexe1 IF %Choix% == 2 CALL ScriptAnnexe2 IF %Choix% GTR 2 ECHO Erreur de saisie pause
Note : @echo off sert à ne pas afficher les commandes passées mais seulement leur résultat.
IV. Résultats
- Lorsque le choix est égal à 1 :
- Lorsque le choix est égal à 2 :
- Lorsque le choix est supérieur à 2 :
Bonjour,
Les explications sont claires, merci de bien vouloir partager vos connaissances dans ce domaine.
Puis-je vous soumettre un petit problème de batch ?
J’utilise la commande NET USE pour copier un fichier local sur un serveur de fichiers avec les droits qui vont bien
Cette commande impose le chemin ainsi que les identifiants
Serait il possible de stocker ces identifiants dans un fichier texte(1) puis de les appeler dans un script ?
call (1)
set ligne1 = (1).champ
set ligne2 = (1).champ2
NET USE \\ user:%ligne1% %ligne2%
Mille excuses pour la syntaxe.
Et bien… Avec un truc aussi simpliste on va pas aller loin… LOL