B2) Sous-programmes

La commande CALL appelle un autre batch ET REVIENT à l'appelant Ici PROG2 est appelé par PROG1 et est donc considéré comme un sous- programme de PROG1

PROG1.BAT PROG2.BAT

1 @echo off 5 @echo off

2 echo prog1 6 echo prog2

3 call prog2 4 echo prog1 le retour

Et cette fois on a 1 2 3 5 6 4. Evidemment on peut avoir un programme qui appelle un sous-programme qui lui-même appelle un sous-programme qui lui-même... Comme toujours en cas de récursivité prévoir une condition d'arrêt.

Remarque: on observe avec Novell Netware des plantages dûs au fait que le retour au programme appelant se fait mal -> éviter les CALL pour appeler LOGIN ou LOGOUT...