"Contador" em lote

estou a tentar fazer um ficheiro em lote que irá aumentar uma variável em 1 de cada vez que fizer loops, e depois verificar se a variável é igual a 5, e se não for, volta a fazer loops. Eu sei que provavelmente há um loop de um tempo para isso, mas eu não sabia como fazer isso, e eu estou apenas gostando de aprender lote por diversão agora

Aqui está o código, ele não funciona como deveria, ele apenas exibe um 0: e então não faz mais nada. Então, como é que eu o arranjaria? Tenho a sensação que estou a preparar-me e ... aumentar a variável errado, e talvez esteja confuso sobre as afirmações do 2 if? (Does it have an else if....? De qualquer forma, obrigado pela ajuda.
@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
Nota: não sei muito lote e não sou profissional, mas gosto de aprender e só estou a fazer isto para referência futura, e porque gosto disso. Então, este código provavelmente não é bom, mas eu quero saber como posso conseguir isso.

Author: Wolverine1621, 2013-03-16

5 answers

Esta é uma maneira de simular o ciclo while que você está tentando realizar. Só é necessário um goto:
@echo off
set /a x=0
:while
if %x% lss 5 (
  echo %x%
  pause>nul
  set /a x+=1
  goto :while
)
echo Test :D
 22
Author: A. Rodas, 2013-03-16 14:29:27

Para definir um valor numérico para uma variável, pode usar o botão /a:

O botão /a Especifica que o texto à direita do sinal igual é uma expressão numérica que é avaliada.

(Tipo SET /? para toda a ajuda).

Segundo, verifique o seu {[[2]} Fluxo - isto nunca volta para A.

Em terceiro lugar, verifique a sintaxe da expressão if (!= não existe em lote).

 3
Author: marapet, 2013-03-16 14:07:43
Isto deve funcionar.
@echo off
set var1=0

:loop
    set /a var1=%var1%+1

echo %var1%

if %var1% EQU 5 (
    goto :end
) else (
    goto :loop
)

:end
    pause
 3
Author: Jhon, 2013-03-16 14:14:05

Você pode fazer isso com um simples comando FOR:

for /l %%x in (0,1,100) do (
echo %%x
)

Pode substituir 100 pelo número que quiser

 3
Author: Aldrein, 2015-07-09 21:27:57
@echo off
set a=0
:Count
set /a a=a+1
echo %a%
goto Count
 0
Author: ch4ddyb0x026, 2015-04-22 20:31:38