Vous pouvez faire et
avec des conditions imbriquées :
if %age% geq 2 (
if %age% leq 12 (
set class=child
)
)
Vous pouvez également le faire sous cette forme abrégée :
if %age% geq 2 if %age% leq 12 set class=child
Vous pouvez faire ou
avec une variable distincte :
set res=F
if %hour% leq 6 set res=T
if %hour% geq 22 set res=T
if "%res%"=="T" (
set state=asleep
)
Remarquez que cette réponse est conçue pour le langage batch cmd
, celui trouvé dans Windows. Vous mentionnez "batch DOS" mais, selon plusieurs points, je pense que le premier choix est le plus sûr(1).
Si vous vouliez vraiment dire le langage batch MS-DOS d'origine, gardez à l'esprit que l'instruction if
était beaucoup plus simple, et vous pourriez avoir besoin d'utiliser des blocs if ... goto
pour le flux de contrôle, plutôt que (par exemple) des parenthèses ou un else
.
(1) Appuyé par les points suivants :
- La présence des balises
cmd
et windows-console
;
- La précédente expérience de certaines personnes qui ont échoué à reconnaître la différence très réelle entre les langages batch
cmd
et MS-DOS, et qui ont confondu le DOC avec la fenêtre terminal cmd
;
- La question utilisant le terme plus générique "DOS" plutôt que spécifiquement "MS-DOS" (où "DOS" pourrait éventuellement être n'importe quel système d'exploitation de disque) ;
- Le fait que ceci est Stack Overflow plutôt que le site sœur retro-computing, où une question sur MS-DOS serait bien plus appropriée (je suis souvent aussi sur ce site, c'est sympa pour ceux d'entre nous qui se souviennent et apprécient l'histoire de l'informatique) ; et
- L'acceptation (éventuelle) de la réponse par le demandeur initial, indiquant que la solution a fonctionné.
7 votes
Je soumets pour votre plaisir de visionner : pi.bat :) thedailywtf.com/Articles/…