Saludos,
- Primero, no confundir Bash de Linux con Batch de Windows.
- Segundo, recuerda que tienes la ayuda del mismo CMD, utilizando por ejemplo:
- En la ayuda muestra que Batch tiene una deficiencia en la actualización de variables dentro de bucles For, estos no se actualizan hasta que el bucle finalice. Para actualizar variables dentro de los bucles puedes usar EnableDelayedEspansion y cambiar %z% por !z!
-- He puesto solo a en lugar de %a% en el Set /a, ya que cuando se usa Set /a no es necesario encerrar a las variables entre %, Set /a siempre intentará resolver cualquier valor no numérico que tenga que operar ya que está hecho para operar números y no debería haber texto a no ser que sean nombres de variables.
- Referencias: https://ss64.com/nt/delayedexpansion.html
- Primero, no confundir Bash de Linux con Batch de Windows.
- Segundo, recuerda que tienes la ayuda del mismo CMD, utilizando por ejemplo:
Código (dos) [Seleccionar]
Set /?
- En la ayuda muestra que Batch tiene una deficiencia en la actualización de variables dentro de bucles For, estos no se actualizan hasta que el bucle finalice. Para actualizar variables dentro de los bucles puedes usar EnableDelayedEspansion y cambiar %z% por !z!
-- He puesto solo a en lugar de %a% en el Set /a, ya que cuando se usa Set /a no es necesario encerrar a las variables entre %, Set /a siempre intentará resolver cualquier valor no numérico que tenga que operar ya que está hecho para operar números y no debería haber texto a no ser que sean nombres de variables.
Código (dos) [Seleccionar]
@echo off
SetLocal EnableDelayedExpansion
echo Bienvenido
set /p n="Introduce un numero: "
for %%x in ( 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 ) do (
set /a z= n * %%x
echo !z!
)
pause
CitarBienvenido
Introduce un numero: 7
7
14
21
28
35
42
49
56
63
70
Presione una tecla para continuar . . .
- Referencias: https://ss64.com/nt/delayedexpansion.html