ÍndiceÍndice  PortalPortal  CalendarioCalendario  FAQFAQ  BuscarBuscar  RegistrarseRegistrarse  MiembrosMiembros  Grupos de UsuariosGrupos de Usuarios  Conectarse  

Comparte | 
 

 Programar en BATCH desde "0"

Ir abajo 
AutorMensaje
[Somnophore]
.:Moderador Del Mal:.
.:Moderador Del Mal:.
avatar

Masculino Cantidad de envíos : 131
Edad : 31
Fecha de inscripción : 06/08/2007

MensajeTema: Programar en BATCH desde "0"   Jue Ago 09, 2007 1:10 am

Capitulo 1
Introduccion y primeros comandos


Los programas que se hacen en batch suelen tener la extension .BAT de ahi su nombre. Es posible cambiar esta extension con programas pero esto ya lo veremos mas adelante cuando creemos virus.
Para programar en bat necesitas un editor de texto plano (recomiendo el block de notas) y ganas. Utiliza como compiler el cmd.
*Ni se os ocurra programar en word o wordpad ya que es imposible no son editores de texto plano. <----ignorantes lol!

Lets start !
En este capitulo les enseñare el funcionamiento de echo,exit y de pause
(3 comandos muy usados en batch)
echo
Sirve para escribir en la pantalla (Tiene mas funciones por ahora usaremos esa)
Normalmente los programas empiezan por @echo off esto sirve para q no aparezca al ejecutarse las tipicas lineas del cmd ( c.\documents & settings\user....). Si no entienden nada, en los ejemplos y en sus errores aprenderan.
pause
Sirve para detener el programa hasta que se pulse una tecla. Digo lo mismo en los ejemplos lo veran mas claro
exit
Sirve para salir del programa.

Ejemplos:

Con echo aparecera en pantalla "Somno Rules !" ,pausa para tocar una tecla y continuar y exit para salir.
(si no estubiera el pause no podrimos leer lo qe dice porq ese cerraria)
El code es asi:


Código:
Código:
@echo off
echo Somno rules !
pause
exit

Para guardar un Batch tienen qe poner la extencion .BAT al guardarlo y poner en tipo Todos los archivos.

_________________







"El ignorante afirma, el sabio duda y reflexiona"
Volver arriba Ir abajo
Ver perfil de usuario http://www.iaedelmal3.blogspot.com
[Somnophore]
.:Moderador Del Mal:.
.:Moderador Del Mal:.
avatar

Masculino Cantidad de envíos : 131
Edad : 31
Fecha de inscripción : 06/08/2007

MensajeTema: Re: Programar en BATCH desde "0"   Jue Ago 09, 2007 1:30 am

Capitulo 2

Aqui veremos los comandos de antes pero en algunas de sus variaciones
y algunos comandos nuevos

1.si al comando pause se le añade > nul (pause > nul) no pone en la pantalla lo de : presione una tecla para continuar..., y se sigue ejecutando de la misma forma.

2.Con el comando echo no hay qe solo escribir texto se puede dejar en blanco de estemo modo echo.

REM, CLS Y GOTO


rem
Este comando sirve para poner comentarios en el codigo para explicar algo a otro programador o a ti mismo. Hace lo contrario qe "echo", echo lo muestra en la pantalla, "REM" lo esconde.

goto
Los codigos bat suelen estar divididos en partes. Una parte de un bat tiene la siguiente estructura (:menu). Este comando lo que hace es ir a una parte ( go to = ir a ). Se qe parece inutil pero cuando veamos variables ya veran lo bueno qe es.

La sintaxis de goto es:
goto :menu(sin los dos puntos)

cls
Este comando sirve para borrar la pantalla.


Código:
Código:
@echo off
:menu
rem si se fijan :menu es una parte del programa al igual q :menu2
rem con echo. dejo en blanco la lineas.
echo.
echo Somno rules !
echo.
rem Utilizo pause > nul para q no aparezca el el mensaje de pulse una tecla
pause > nul
goto menu2
:menu2
cls
rem con cls borran la pantalla si lo sacan veran qe qeda lo demas prueben
echo.
echo Ahora estoy en la parte :menu2
echo.
pause > nul
exit

_________________







"El ignorante afirma, el sabio duda y reflexiona"
Volver arriba Ir abajo
Ver perfil de usuario http://www.iaedelmal3.blogspot.com
[Somnophore]
.:Moderador Del Mal:.
.:Moderador Del Mal:.
avatar

Masculino Cantidad de envíos : 131
Edad : 31
Fecha de inscripción : 06/08/2007

MensajeTema: Re: Programar en BATCH desde "0"   Jue Ago 09, 2007 1:45 am

Capitulo 3
Variables


Bueno este capitulo estara dividido en varias partes unas 3 o 4 en las que hablaremos de la declaracion de variables y de los tipos, tambien hablaremos de las variables de expansion.
Apartir de aca biene lo divertido y lo qe dejara bolar su imaginacion

1.Como declarar un variable

Set nombrevariable= valor

Simple ? lo se ^^

Para llamar a la variable en un lugar del programa se debe hacer de esta manera: %nombrevariable%
(es decir, entre tantos por ciento "%" se puede hacer en cualqier parte del programa)

Esta variable puede contener tanto palabras como numeros, pero no operaciones como + - / etc en el capitulo siguente explicare como hacer
operaciones con variables (tambien es simple y interesante). En este voy a explicar como hacer para que tu programa consiga una variable por el usuario.

Esto se hace de esta manera:

Set /p nombrevariable= Lo que saldra en la pantalla para que el usuario lo rellene(ejemplo Nombre: o ¿ Como te llamas ? es lo mismo)

Aqui les va el code para qe no se pierdan

Código:
Código:

@echo off
Title Ejemplo
color 0a
cls
set saludo= Hola,
set /p nombre= Como te llamas?
cls
set/p ape= Cual es tu primer apellido, %nombre%?
cls
set/p ape1= Y el segundo?
cls
echo.
echo %saludo% %nombre% %ape% %ape1%
echo.
pause
exit

Title para qe cambien lo de la barra azul de arriva y color para poner le color prueben con distintos numeros yo prefiero 0a siempre.

Prueben de hacer uno ustedes mismo y luego lo publican ^^

_________________







"El ignorante afirma, el sabio duda y reflexiona"
Volver arriba Ir abajo
Ver perfil de usuario http://www.iaedelmal3.blogspot.com
[Somnophore]
.:Moderador Del Mal:.
.:Moderador Del Mal:.
avatar

Masculino Cantidad de envíos : 131
Edad : 31
Fecha de inscripción : 06/08/2007

MensajeTema: Re: Programar en BATCH desde "0"   Jue Ago 09, 2007 2:25 am

Capitulo 4
¡ Mas Variables !


En este capitulo aprenderemos operaciones con variables
mas simple de lo qe piensan

Bueno empezamos kon lo de las operaciones con variables:

Para hacer operaciones (suma,resta,division etc) se hace con set /a .
Sintaxis:
set /a VariableEnLaQueSeGuardaraElResultado= variable+variable2
Se puede poner cualquier operacion no solo "+"

Ejemplo:
Si qiero sumar una variable X=3 y otra Y=6 y qe el resultado este en R
set /a R=X+Y

¿ que pasa si pongo set R= X+Y ?
La variable seria X+Y

Y si pongo set c= %a%+%b%?
La variable seria 3+6

Código:
Código:
@echo off
cls
title Medias de notas
color 0a
echo.
set /p a=qe nota te sacaste en lengua?
cls
set /p b=qe nota te sacaste en ingles?
cls
set /p c=qe nota te sacaste en matematica?
cls
set /p d=qe nota te sacaste en historia?
cls
set asignaturas=4
set /a media1=a+b+c+d
set /a media=media1/asignaturas
echo.
echo Tu media es %media%
echo.
pause
exit

Hagan esto para practicar un poco es simple simple

Código:
-pide el nombre para darle a un cuadrado.
-pide el lado de del cuadrado y calcula su area.
area = lado * lado ( nunca se sabe xd)
-escribe "el area de (nombre q le aya puesto el usuario) es (area calculada)
-pide el nombre para darle a un  rectangulo
- pide la base y la altura de un rectangulo y calcula su area.
area = base * altura
-escribe "la base de ( nombre que le aya dado el usuario) es (base calculada)
- se despide.
-se cierra.

_________________







"El ignorante afirma, el sabio duda y reflexiona"
Volver arriba Ir abajo
Ver perfil de usuario http://www.iaedelmal3.blogspot.com
[Somnophore]
.:Moderador Del Mal:.
.:Moderador Del Mal:.
avatar

Masculino Cantidad de envíos : 131
Edad : 31
Fecha de inscripción : 06/08/2007

MensajeTema: Re: Programar en BATCH desde "0"   Jue Ago 09, 2007 2:43 am

Aqui tienen una peqeña ayuda araganes xD

me tarde como 5 o 10 minutos en hacerloo ¬¬


Código:
@echo off
Title Ejemplo para los vagos ¬¬
color 1e
:menu
set /p preg=¿Quieres Averiguar el area de un cuadrado, de un rectangulo o salir?
if %preg%==cuadrado goto :cuadrado
if %preg%==rectangulo goto :rectangulo
if %preg%==salir goto :salida
:cuadrado
set /p nom=¿Cual sera el nombre del cuadrado?
set /p lad1=¿cuanto mide su lado?
set /p lad2=¿cuanto mide su segundo lado?
set /a area=%lad1%*%lad2%
echo el area de %nom% es %area%
pause
cls
goto :menu
:rectangulo
set /p nom=¿Cual sera el nombre del rectangulo?
set /p bas=¿cuanto mide su base?
set /p alt=¿cuanto mide su altura?
set /a area=%bas%*%alt%
echo el area de %nom% es %area%
pause
cls
goto :menu
:salida
echo Hasta luego !
pause
exit

Mierda no les habia explicado sobre IF
pero no importa ahi tienen como se hace no tomen encuenta el IF

_________________







"El ignorante afirma, el sabio duda y reflexiona"
Volver arriba Ir abajo
Ver perfil de usuario http://www.iaedelmal3.blogspot.com
[Somnophore]
.:Moderador Del Mal:.
.:Moderador Del Mal:.
avatar

Masculino Cantidad de envíos : 131
Edad : 31
Fecha de inscripción : 06/08/2007

MensajeTema: Re: Programar en BATCH desde "0"   Jue Ago 09, 2007 2:56 am

Capitulo 5
¡ IF !


El comando if sirve para hacer algo en caso de que se cumpla una condicion impuesta a una variable. on este comando ,por ejemplo, podemos hacer menus. Su sintaxis es esta:

If [not] condicion accion

*el not es opcional y sirve para expresar la condicion de forma negativa ( ej/ if not %var1%==1 echo mal // si var1 NO es iwal a 1 escribe mal)

Las condiciones que se suelen utilizar son :

Código:
variable==valor (para expresar si la variable es igual a valor az esto)
variable LSS valor("        "          "  "  "          es menor a valor az esto)
variable GTR valor("      "          "  "  "          es mayor a valor az esto)
variable LEQ valor("      "          "  "  "          es menor o igual az esto)
variable GEQ valor("      "          "  "  "          es mayor o igual az esto)

os pongo un ejemplo de un "juego" basado en esto:

Código:
@echo off
title Averigua el numero
:menu
cls
set /p var1=pon un numero:
If %var1%==8 goto bien
If %var1% LSS 8 goto menor
If %Var1% GTR 8 goto mayor
:bien
cls
echo Muy bien, as acertado!!!
pause
goto end
:menor
cls
echo el numero que as puesto es menor
echo sigue probando
pause
goto menu
:mayor
echo el numero que as puesto es mayor
echo sigue probando
pause
goto menu
:end
echo adios
pause
exit

_________________







"El ignorante afirma, el sabio duda y reflexiona"
Volver arriba Ir abajo
Ver perfil de usuario http://www.iaedelmal3.blogspot.com
[Somnophore]
.:Moderador Del Mal:.
.:Moderador Del Mal:.
avatar

Masculino Cantidad de envíos : 131
Edad : 31
Fecha de inscripción : 06/08/2007

MensajeTema: Re: Programar en BATCH desde "0"   Jue Ago 09, 2007 3:02 am

capitulo 5
continuacion.


Como dije antes if vale para hacer algo segun condiciones que pongamos. Pero que pasa si las condiciones que ponemos no se cumplen?
simplemente ( al ser un lenguaje liineal) pasa a la linea siguiente.Bien es un poko lata, ya que da muxos errores acer esto:


Código:
if %var%==1 goto xx
if %var%==2 goto xy
if %var%==3 goto zz
etc

¿ por qe da errores?

por que i si el usuario se confunde y pulsa 4.Probad a ver que os pasa.
hace lo que quiere.


Muy bien y como se resuelve? pues con un comando muy sencillo llamado else y unos paretesis.

la sintaxis seria esta

IF condiciones (accion1*) ELSE accion2

explicacion //SI las condiciones son verdaderas haz accion1 SINO haz accion2

*la accion1 ha de ir obligartoriamente entre parentesis

ejemplo:

Código:
Código:
if %var%==1 (goto xx) else goto comp
:comp
if %var%==2 (goto xy) else goto comp2
:comp2
if %var%==3 (goto zz) else echo el numero pulsado es incorrecto && pause && goto menu


ahora direis , q es &&??
sirve para "decir al programa" haz esto (y) estor (y) esto.
el nexo conpulativo y ( y me suspendieron la lengua......XD) se sutituye en nuestro programa por &&.

bien ahora imaginemos que queremos que el programa aga algo si existe tal archivo.

Pues bien esto se ace con IF EXIST.
su sintaxis:

IF EXIST rutaarchivo accion

por supuestro se puede combinar con else:

IF EXIST rutaarchivo (accion1) ELSE accion2

ej//

Código:
If exist c:\Hola.txt (goto si) else goto no
:si
cls
echo Existe
pause
exit
:no
cls
echo No existe
pause
exit


Bien yo creo que este capitulo se puede dar por cerrado.

Aqui vienen los deberes.

Haz un programa que te pida la ruta de un archivo a buscar.
compruebe si existe
y escriba en caso afirmativo Existe y en caso negativo No existe.

Muy Facil
Practiquen


_________________







"El ignorante afirma, el sabio duda y reflexiona"
Volver arriba Ir abajo
Ver perfil de usuario http://www.iaedelmal3.blogspot.com
[Somnophore]
.:Moderador Del Mal:.
.:Moderador Del Mal:.
avatar

Masculino Cantidad de envíos : 131
Edad : 31
Fecha de inscripción : 06/08/2007

MensajeTema: Re: Programar en BATCH desde "0"   Jue Ago 09, 2007 3:56 am

capitulo 6
Redirecionamientos


Vamos a ver, imaginemos que queremos acer un programa que guarde cierta informacion en un archivo. Ese archivo se va a llamar ola.txt.

bien para guardar informacion en un archivo se hace con los redireccionamientos (echo ..... >> archivo....).

ejemplo quiero guardar en ola.txt este code:


Código:
@echo off
echo.
echo se a copiado
echo.
pause
exit


se haria asi:

Código:
echo @echo off > c:\ola.txt
echo echo. >> c:\ola.txt
echo echo se a copiado >> c:\ola.txt
echo echo. >> c:\ola.txt
echo pause >> c:\ola.txt
echo exit >> c:\ola.txt


qe diferencia hay entre > y >>?

> = borra lo que aya en el archivo y escribe ( es decir sobreescribe )
por ejemplo:
echo echo ola > c:\ola.txt
borra todo lo que ay en ola.txt y luego escribe echo ola

>> = escribe respetando el texto anterior
por ejemplo
echo exit >> c:\ola.txt
quedaria asi:
echo ola( respeta lo que ay)
exit

bien yo creo que todo lo basico ya esta dado mas adelante ya profundizaremos. A partir de mañana empezamos con el programa a partes , tengo pensado hacer una agenda si alguien tiene otra idea que lo ponga.

Ejemplo qe resume esto

ejemplo:

Código:
@echo off
title Creador de programa para medir areas
:menu
cls
echo.
echo 1.Area cuadrado
echo 2.Area rectangulo
echo 3.salir
set /p opc=Que quieres acer??
if %opc%==1 goto cua
if %opc%==2 goto rec
if %opc%==3 (goto end) else echo No se reconoce la tecla pulsada && pause > nul && goto menu
:cua
echo @echo off > c:\cuadrado.bat
echo set /p a=Lado cuadrado: >> c:\cuadrado.bat
echo cls >> c:\cuadrado.bat
echo echo. >> c:\cuadrado.bat
echo set /a are=a*a >> c:\cuadrado.bat
echo echo El area del cuadrado es %%are%% >> c:\cuadrado.bat
echo pause >> c:\cuadrado.bat
echo goto end >> c:\cuadrado.bat
echo El programa se encuentra en c:\
pause
goto menu
:rec
echo @echo off > c:\rectangulo.bat
echo set /p b=base crectangulo: >> c:\rectangulo.bat
echo cls >> c:\rectangulo.bat
echo set /p h=Altura rectangulo: >> c:\rectangulo.bat
echo cls >> c:\rectangulo.bat
echo echo. >> c:\rectangulo.bat
echo set /a bas=b*h >> c:\rectangulo.bat
echo echo El area del rectangulo es %%bas%% >> c:\rectangulo.bat
echo pause >> c:\rectangulo.bat
echo goto end >> c:\rectangulo.bat
echo El programa se encuentra en c:\
pause
goto menu
:end
cls
echo.
echo Hasta la proxima
pause
exit

Tienen qe leer bien linea por linea para comprender completamente

_________________







"El ignorante afirma, el sabio duda y reflexiona"
Volver arriba Ir abajo
Ver perfil de usuario http://www.iaedelmal3.blogspot.com
En3rgy
Novato
Novato


Cantidad de envíos : 11
Fecha de inscripción : 22/08/2007

MensajeTema: Re: Programar en BATCH desde "0"   Miér Ago 22, 2007 1:02 am

Esta bien el Tutorial, espero que lo amplies =]
Volver arriba Ir abajo
Ver perfil de usuario
[Somnophore]
.:Moderador Del Mal:.
.:Moderador Del Mal:.
avatar

Masculino Cantidad de envíos : 131
Edad : 31
Fecha de inscripción : 06/08/2007

MensajeTema: Re: Programar en BATCH desde "0"   Miér Ago 22, 2007 10:14 pm

Gracias energy, lo voy a ampliar dentro de poco, para empesar con scripts pero todabia no tengo tiempo. Espero qe cuando haya mas users lo sigan y aprendar batch qe es un buen pasatiempo

_________________







"El ignorante afirma, el sabio duda y reflexiona"
Volver arriba Ir abajo
Ver perfil de usuario http://www.iaedelmal3.blogspot.com
Contenido patrocinado




MensajeTema: Re: Programar en BATCH desde "0"   

Volver arriba Ir abajo
 
Programar en BATCH desde "0"
Volver arriba 
Página 1 de 1.
 Temas similares
-
» El Mejor Disco & Video en Español 2011-2012: "Avernal" desde Argentina.
» ARKANIA HEAVY METAL SEGUNDO DISCO "ETERNA" SALE A LA VENTA EL 2 DE NOVIEMBRE
» Y así será el "Mahlerfeest" de la KCO
» ONDSKAPT ,NED,Y EL BLACK METAL"ORTODOXO"
» Drudkh - "Microcosmos"

Permisos de este foro:No puedes responder a temas en este foro.
 :: Programacion :: Batch-
Cambiar a: