Adicionando números armazenados em variáveis no script de lote do Windows

3

Eu tenho um loop em um script em lote e gostaria de fazer algumas aritméticas com o contador de loops. Descobri como avaliar expressões, como adicionar números aqui: Avaliando expressões no script de lote do windows

Como faço o mesmo, mas com variáveis?

Por exemplo:

set x = 100
for /L %%i in (1,1,5) do (
    set Result=0
    set /a Result = %%i+%%x
    echo %Result%
)

Como saída, eu esperaria

101 102 103 104 105

Obrigado!

    
por raoulsson 28.08.2009 / 18:06

2 respostas

5

Você realmente deve se afastar dos arquivos em lote.

@echo off

setlocal enabledelayedexpansion

set x=100
set result=0

for /L %%i in (1,1,5) do (

  set /A result=!x! + %%i

  echo !result!
)

endlocal
    
por 28.08.2009 / 18:57
1

Você está redefinindo o resultado para zero em cada etapa. Mova isso antes do loop. Além disso, tente help set no prompt cmd para obter mais informações sobre tudo isso. Especialmente, veja a seção sobre expansão de variáveis de ambiente atrasada.

    
por 28.08.2009 / 19:56