Menu (batch)
Aller à la navigation
Aller à la recherche
| Fiche express | |
|---|---|
| Objectif | Menu interactif en batch |
| Techniques | findstr, set /p, call
|
| Voir aussi | Batch · Routines (batch) |
Cette page présente un modèle de menu interactif en batch. Le script construit
dynamiquement la liste des choix en cherchant, dans son propre fichier (%~f0), les
étiquettes commençant par :menu_ à l'aide de findstr. La saisie de
l'utilisateur (set /p) déclenche l'appel (call) de la sous-routine
correspondante.
Code
::-----------------------------------------------------------
:: Exemple de menu en batch
::-----------------------------------------------------------
@ECHO OFF
REM.-- Prepare the Command Processor
SETLOCAL ENABLEEXTENSIONS
SETLOCAL ENABLEDELAYEDEXPANSION
:menuLOOP
cls
echo.
echo.==================================
echo. MENU
echo.==================================
echo.
for /f "tokens=1,2,* delims=_ " %%A in ('"findstr /b /c:":menu_" "%~f0""') do echo. %%B %%C
set choice=
echo.&set /p choice=Make a choice or hit ENTER to quit: ||GOTO:EOF
echo.&call:menu_%choice%
GOTO:menuLOOP
::-----------------------------------------------------------
:: fonctions du menu
::-----------------------------------------------------------
:menu_1 choix 1
echo.Choix 1
GOTO:EOF
:menu_2 choix 2
echo.Choix 2
GOTO:EOF
:menu_
::-----------------------------------------------------------
:: affiche l'aide : toutes les lignes commençant par ::h~
:: on peut changer pour avoir plusieurs aides
::-----------------------------------------------------------
:menu_h help
for /f "tokens=1,* delims=~ " %%A in ('"findstr /b /c:"::h" "%~f0""') do echo.%%B
GOTO:EOF
:menu_C Clear Screen
cls
GOTO:EOF
::--------------------------------------
::h~ mon aide
::h~ usage et autre
::--------------------------------------
Voir aussi
- Batch — recueil de scripts batch
- Routines (batch) — sous-routines appelées par
call