Utilisation de la commande CALL

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 :

Partagez cet article Partager sur Twitter Partager sur Facebook Partager sur Linkedin Partager sur Google+ Envoyer par mail

Florian Burnel

Co-Fondateur d’IT-Connect, je souhaite partager mes connaissances et expériences avec vous, et comme la veille techno’ est importante je partage aussi des actus.

florian a publié 1612 articles sur IT-Connect.See all posts by florian

Une réaction sur “Utilisation de la commande CALL

  • 15/09/2016 à 09:20
    Permalink

    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.

    Répondre

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *