Intentaré ir haciendo pequeños programas bat, explicando el código empleado para que cualquiera lo entienda.

Mostrando entradas con la etiqueta GOTO. Mostrar todas las entradas
Mostrando entradas con la etiqueta GOTO. Mostrar todas las entradas

viernes, 4 de julio de 2008

LOS BUCLES: GOTO Y FOR

El bucle se utiliza para hacer una accion muchas veces sin necesidad de volver a copiar todas las sentencias. Se ahorra codigo y se ve todo mas claro.
En bat podemos hacer los bucles de dos formas: mediante goto o mediante for.

BUCLES CON GOTO
Es muy simple de hacer. Ponemos una etiqueta, una accion, un contador, un if para terminar el bucle y un goto que vaya a la etiqueta.

Un ejemplo seria el siguiente:

@echo off
set contador=0
:inicio
echo NUMERO %contador%
pause
set/a contador=contador+1
if %contador%==10 (goto echo SE ACABO&&pause%%exit) else goto :inicio


BUCLES CON FOR

La sintaxis del bucle con for seria:

FOR %%letra IN (lista) DO (acciones)

La variable %%letra toma cada valor de la lista y realiza la accion

Como mejor lo veremos es con un ejemplo:

@echo off
for %%t in (antonio pedro juan) do (echo mi primo se llama %%t)
pause
exit

Tambien se puede usar el for con la opcion /L para trabajar con numeros:

La sintaxis seria:

FOR /L %%letra IN (numero inicio, numero de paso, numero final) DO (acciones)

En estos ejemplos lo vemos mas claramente:

@echo off
echo VAMOS A CONTAR DE 2 EN 2 HASTA 20
echo .
for /l %%a in (0,2,20) do echo ESTE ES EL NUMERO %%a
pause
exit

Si queremos que vaya decrementando hariamos asi:

@echo off
echo VAMOS A RESTAR DE 2 EN 2 DESDE 20
echo .
for /l %%a in (20,-2,0) do echo ESTE ES EL NUMERO %%a
pause
exit






***

sábado, 28 de junio de 2008

CREANDO MENÚS: IF, GOTO ELSE

En la creación de menús son muy importantes los comandos if goto y else. Su utilización es un poco complicada pero con mi ayuda la entenderéis fácilmente.
El comando if establece una condición entre una variable y su valor.
El comando goto da un salto en el programa si se cumple la condición a una subrutina que se encabeza con los ":" y un nombre.
El comando else es la opción que se realizará si todo lo demás falla.

Lo mejor es verlo con un ejemplo:

@echo off
:menu
echo ELIGE ENTRE ESTOS COLORES: azul, rojo, verde
set /p colorin=¿Que color eliges?
if %colorin%==azul goto azulin
if %colorin%==rojo goto rojin
if %colorin%==verde goto verdin

:azulin
cls
echo HAS ELEGIDO EL COLOR AZUL
pause
exit

:rojin
cls
echo HAS ELEGIDO EL COLOR ROJO
pause
exit

:verdin
cls
echo HAS ELEGIDO EL COLOR VERDE
pause
exit


La utilización de IF... GOTO.... ELSE es algo más compleja pero básicamente ELSE se utiliza cuando no se cumple la condición. La sintaxis sería:
if condicion (goto menu1) else goto menu2 -------------- (goto menu1) debe ir entre paréntesis siempre

Con este ejemplo lo comprenderemos:

@echo off
:menu
cls
echo ¿Eres guapo?
set /p contesta=si o no
if %contesta%==si (goto creido) else goto sorpresa
:sorpresa
if %contesta%==no (goto feillo) else goto menu
:creido
cls
echo ESO NO TE LO CREES NI TU
pause
exit

:feillo
cls
echo POBRECILLO, COMPRATE UNA MASCARA
pause
exit


Si contestamos algo que no sea si o no entonces se repite el menú inicial.





***