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 :
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 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
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.
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
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.
Partager