Bonjour,

je suis un grand débutant dans le domaine du batch et je me pose une question au sujet des label. J'ai créé deux scripts batch répondants à mon besoin que je souhaite mutaliser, vu q'uils ont des fonctionnalités communes.

J'ai donc décidé de faire un seul script avec un système de choix. Là je me suis rendu compte que je ne savais pas faire appel à des label dans des ordres différents selon le choix.

Mon but est, selon le choix tapé, d'effectuer des appels aux labels dans un ordre différent, une sorte de :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
set /p choix=
if %choix%==1 goto choix1
if %choix%==2 goto choix2
goto fin

:choix1
goto label1
goto label2
goto label4
goto label3
goto fin

:choix2
goto label4
goto label2
goto label1
goto fin

:label1
echo label1

:label2
echo label2

:label3
echo label3

:label4
echo label4

:fin
echo fin
pause
On peut voir par exemple que mon "label4" est suivi de "label3" ou "label2" selon le choix. Mon exemple est simple, donc on peut imaginer conditionner la sortie de mon label par un if. Une sorte de (code qui fonctionne) :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
set /p choix=
if %choix%==1 goto choix1
if %choix%==2 goto choix2
goto fin

:choix1
goto label1

:choix2
goto label4

:label1
echo label1
if %choix%==1 goto label2
if %choix%==2 goto fin

:label2
echo label2
if %choix%==1 goto label4
if %choix%==2 goto label1

:label3
echo label3
if %choix%==1 goto fin

:label4
echo label4
if %choix%==1 goto label3
if %choix%==2 goto label2

:fin
echo fin
pause
Imaginons maintenant que j'ai 5 choix au lieu de 2, et 15 label au lieu de 4. Si j'ai le nombre de choix qui grandit, mes combinaisons d'enchainements de labels également, et la viabilité du if ne me semble plus OK. Je me vois mal faire un 5 "if" sur mes 15 "label", d'autant plus que la maintenabilité du script sera difficile si un ordre d'enchainement des label venait à changer.
Je sollicite donc votre aide pour savoir quelle est la bonne manière pour appeler plusieurs label dans des ordres différents selon un choix.

Merci pour votre aide.