“Compteur” dans le Lot
Je suis en train de faire un fichier Batch qui va incrémenter une variable de 1 chaque fois qu'il fait une boucle, et ensuite de vérifier si la variable est égale à 5, et si elle n'est pas le cas, c'boucles de nouveau. Je sais qu'il y a probablement une boucle while, mais je ne savais pas comment faire, et je suis tout simplement profiter de l'apprentissage par Lots pour le plaisir maintenant
Voici le code, ça ne fonctionne pas comme il le devrait, il affiche juste un 0: et puis ne fait rien d'autre. Alors, comment pourrais-je aller sur la fixation? J'ai le sentiment que je suis et l'incrémentation de la variable de mal, et c'est peut-être confus au sujet de l'2 si les déclarations? (Est-il en avoir un d'autre si....?) En tout cas, merci pour l'aide
@echo off
set /p i=0:
goto A
:A
set /p i=i+1:
if i != 5 goto C
if i == 5 goto B
:C
echo Test :D
:B
pause>nul
Remarque: je ne sais pas beaucoup de Lot et je ne suis pas un pro, mais j'aime apprendre et je suis juste le faire référence pour l'avenir, et parce que j'aime ça. Donc, ce code n'est probablement pas une bonne chose, mais je veux savoir comment je peux accomplir cela.
OriginalL'auteur Wolverine1621 | 2013-03-16
Vous devez vous connecter pour publier un commentaire.
C'est une façon de simuler la boucle while que vous essayez d'accomplir. Un seul
goto
est nécessaire:Simplement les ajouter à la fin du fichier, les commandes à l'intérieur si
%x% lss 5(...)
seulement sont exécutées lorsque x est inférieure à 5. Je vais mettre à jour la réponse correspond à ce que je pense que vous voulez.Quand je fais cela, il reste juste sorties 0 🙁
Appuyez sur Entrée pour continuer (je pensais que vous vouliez exécuter
pause>nul
pour chaque itération de la boucle)Yep, ça a fonctionné! Très apprécié
OriginalL'auteur A. Rodas
Vous pouvez le faire avec un simple
FOR
commande :Vous pouvez remplacer
100
par le nombre que vous voulezOriginalL'auteur Aldrein
Pour définir une valeur numérique à une variable, vous pouvez utiliser le
/a
commutateur:(Type
SET /?
pour toute l'aide).Ensuite, vérifiez votre
goto
flux - ce jamais boucles à A.Troisième, vérifiez la syntaxe de la
if
expression (!=
n'existe pas dans le lot).Consultez la documentation de
if
(if /?
) - soit vous utilisezIF NOT %i%==5
ouif %i% NEQ 5
(Pas Égal à) ouif %i% LSS 5
(Moins)OriginalL'auteur marapet
Cela devrait fonctionner:
oui, c'est seulement sintax. Sans "()" lot de pauses.
Merci, celui-ci a bien fonctionné
Vous êtes les bienvenus
OriginalL'auteur Jhon
OriginalL'auteur ch4ddyb0x026
essayez ceci:
OriginalL'auteur Mr. Zero