Donc, je fais un projet de lot, sans idées, mais je le fais juste pour le plaisir, j'essaie de le faire, donc si vous n'êtes pas âgé ou plus, cela dit que vous pouvez continuer, sinon vous pouvez continuer. , si je tape moins de 16 ans, cela fonctionne bien, si je fais plus vieux ou égal à 16, il retourne aux deux messages ...
echo Core 0.0.1 echo By Supergrupgr echo SpukkitDev 2020 echo Hit a key to continue pause>nul echo What is your age set /p age= goto determine :determine if %age% GEQ 16 goto oldenough if %age% LEQ 15 goto min :oldenough echo You are old enough... What will you now do. :min echo You are not old enough... Leave. pause
3 Réponses :
Les fichiers de lots font simplement passer à la marque que vous avez spécifiée dans le Il continue ensuite à exécuter de là. Il ne saute pas l'étiquette suivante. P>
Deux solutions: P>
goto code> p>
goto code> déclarations li>
appel code> pour les exécuter li>
ol>
Ouais mais ça ne devrait pas exécuter le prochain goto parce que "l'âge" est supérieur à 15
il n'exécute qu'un goto mais tombe à travers une étiquette à la prochaine
Il suffit d'ajouter si% ÂGE% GEQ 16 GOTO FIND CODE> Après
echo Vous êtes assez vieux code> et ajoutez une étiquette de fin à la fin
Voici un exemple de mise en page pour vous aider:
@Echo Off Echo Core 0.0.1 Echo By Supergrupgr Echo SpukkitDev 2020 "%__AppDir__%timeout.exe" /T 5 Set "age=0" Set /P "age=What is your age? >" If %age% Lss 16 ( Echo= Echo You are not old enough... Leave. Echo= "%__AppDir__%timeout.exe" /T 3 /NoBreak 1> NUL Exit /B 1 ) Echo You are old enough... What will you now do? "%__AppDir__%timeout.exe" /T 3 1> NUL
@jwdonahue, la réponse a été initialement fournie pour montrer une méthodologie particulière, que je pense qu'elle a. Je l'ai fait parce que les suggestions à l'époque suggèrent l'utilisation de appel code> et / ou
goto code>, qui ajoutent tous deux un surcharge inutile. C'est un wiki communautaire, n'hésitez pas à apporter des améliorations / ajouts ou simplement regarder la syntaxe utilisée pour formater la réponse.
Tout d'abord, nous écrivons l'algorithme: écrit que dans le code ressemble à quelque chose comme: p> note: je n'ai pas fait de Beaucoup de tests à ce sujet, mais je pense que tous les chemins de code au moins une fois. Donnez-le un essai. P> voir Notes stylistiques: P> Aide SetLocal code>,
Aide pour code>,
Aide Appeler code>,
Aide goto Code>,
Aide si code> et
Aide Quitter code>, pour en savoir plus sur le code ci-dessus. p>
@ code> tout au long, plutôt que d'un
@echo off Code> car il est plus composé d'autres scripts et facilite le débogage ciblé. LI>
goto code> cibles que
appel code> cibles. LI>
Voir
goto /? Code> et lire le dernier paragraphe.
L'exécution se poursuit juste après
Echo Vous êtes assez vieux ... Code> Sauf si vous ne le disons de ne pas le faire ...
Lire
Aide appeler code> et
Aide si code>. Si 16 est l'âge de coupure, alors 15 ne figure pas dans le problème.
Un
goto code> n'est pas un appel à une fonction. Il suffit d'exécuter l'exécution du programme sur cette étiquette dans le code et continue d'exécuter tout le code à partir de là. À peu près à quel point le
goto code> fonctionne dans chaque langue qui l'utilise depuis l'aube de l'ordinateur.