Routines (batch)
Aller à la navigation
Aller à la recherche
| Fiche express | |
|---|---|
| Sujet | Sous-routines et fonctions batch |
| Appel | call:nom_routine
|
| Retour | goto:eof
|
| Voir aussi | Batch · Menu (batch) |
En batch, une sous-routine (ou fonction) est une section repérée par une étiquette
:nom, appelée avec call:nom et terminée par goto:eof. Cette
page illustre les principaux modes de passage d'arguments.
Sous-routine simple
@echo off
echo appel de la fonction
call:sous_routine
echo apres appel
echo.&pause&goto:eof
::--------------------------------------------------------
:: section fonctions
::--------------------------------------------------------
:sous_routine
echo. execution de la subroutine
goto:eof
Passage d'argument par valeur
Les arguments reçus sont accessibles via %~1 %~2 %~3 ....
@echo off
echo appel de la fonction
call:fonction argument1 argument2
echo apres appel
echo.&pause&goto:eof
::--------------------------------------------------------
:: Fonction avec passage par valeur, arguments %~1 %~2 ...
::--------------------------------------------------------
:fonction
echo. execution de la subroutine
echo. arguments : %~1 %~2
goto:eof
Retour d'un résultat par variable globale
Une variable définie dans la routine reste visible après le retour (hors setlocal).
@echo off
echo avant appel de la fonction var = %var%
call:fonction
echo apres appel de la fonction var = %var%
echo.&pause&goto:eof
::--------------------------------------------------------
:: fonction : changement de valeur classique
::--------------------------------------------------------
:fonction
echo. execution de la subroutine
set "var=valeur"
goto:eof
Passage par référence
On passe le nom de la variable à modifier ; la routine l'affecte via set %~1=valeur.
@echo off
set var=
echo avant appel de la fonction var = %var%
call:fonction var
echo apres appel de la fonction var = %var%
echo.&pause&goto:eof
::--------------------------------------------------------
:: fonction : changement de valeur par reference
::--------------------------------------------------------
:fonction
echo. execution de la subroutine
set %~1=valeur
goto:eof
Voir aussi
- Batch — recueil de scripts batch
- Menu (batch) — menu appelant des sous-routines