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

Ingénieur système et réseau, cofondateur d'IT-Connect et Microsoft MVP "Cloud and Datacenter Management". Je souhaite partager mon expérience et mes découvertes au travers de mes articles. Généraliste avec une attirance particulière pour les solutions Microsoft et le scripting. Bonne lecture.

Nombre de posts de cet auteur : 5500.Voir tous les posts

2 thoughts on “Utilisation de la commande CALL

  • 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
  • Et bien… Avec un truc aussi simpliste on va pas aller loin… LOL

    Répondre

Laisser un commentaire

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

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.