• LOL

Curso Batch [Variables]

Que es Batch?

Batch en sí, no es un lenguaje de programación sino que es un lenguaje script ya que ejecuta solamente comandos del sistema creando un archivo por lotes de texto sin formato. No es case sensitive, es decir, que tanto es válido Variable1 como VARIABLE1 o variable1.

CMD o Shell

Nuestra Shell o consola de comandos es la ventanita negra que vemos cada que se ejecuta un bat, la pueden abrir dirigiéndose a Inicio>>Ejecutar>>Escriben cmd>>Enter. Ahí pueden ir haciendo sus pruebas sobre las diferentes variables de entorno que tenemos en el sistema o bien hacer línea por línea para probar su archivo ;).

Como guardar un archivo BAT

Usaremos nuestro glorioso bloc de notas para guardar nuestros trabajos que iremos realizando durante el curso, para guardarlo como un BAT, al darle guardar como escribiremos el nombre que queramos pero con extensión .bat. Esto es lo que haremos cada que quiéranos probar un code de los del curso o algún otro. (Para que ya no pregunten cómo se guarda xD)



Variables

Como sabemos, una variable es un espacio que se reserva en memoria para alojar cierto tipo de dato. En batch solo hay 2 tipos de datos: enteros y cadenas.

@echo off
set var_string= hola
set var_num=5
echo %var_string%
echo %var_num%
pause
exit

El código anterior tiene 2 variables, una donde almacenamos una cadena y en la otra un numero, no hay ciencia :). Otro dato importante es la primera línea que hemos puesto al igual que las 2 últimas.

@echo off: Nos sirve para que al momento de ejecutar nuestro archivo, no se muestren cada línea mostrando la ruta o el proceso de cada variable o función que vayamos realizando en nuestro programa. Prueben el programa anterior quitándole la primer línea y verán como aparece

Pause: Hace un pause durante la ejecución y presionando una tecla continua con su camino :), prueben pause>nul y notarán la diferencia, lo que hace el >nul es suprimir el resultado que da la el pause en este caso Presione una tecla para continuar… dejándolo solo en blanco.



Exit: Salida o fin del programa xD

@echo off
set num1 = 9
set num2=8
set /a resul=%num1%+%num2%
echo El resultado es: %resul%
pause
exit

Este pedazo de código de arriba realiza una operación entre num1 y num2.

@echo off
set num1 = 4
echo Numero uno es: %num1%
set /a num1*=0xff
echo Ahora numero uno es: %num1%
pause
exit

Con esto acabamos de hacer una operación con un decimal y un hexadecimal, el 0x indica que se trabajará con números hexadecimales; 0xff=255, entonces 4*=255 y al final num1=510.

Operadores


Agrupación:     ()
Aritméticos:       * / % + -
Bits:                   << >>
And:                  &
OR:                    ^
XOR:                   |
Asignación:        =  *=  /=  %=  +=  -=
                           &=  ^=  |=  <<=  =>>
Separador de expresión:      ,

Introducir datos por el teclado

@echo off
set /p name = Escribe tu nombre:
echo Hola %name %
pause
exit

Tan fácil como se ve, con el set /p name nos sirve para poder reservar un espacio en memoria para guardar la cadena del nombre que se ingresara para después imprimirlo con echo Hola %name%

Conclusion sobre Variables

@echo off
echo Promedio
set /p name = Escribe tu nombre:
echo ------Calificaciones------
set /p c1 = Primer semestre:
set /p c2 = Segundo semestre:
set /p c3 = Tercer semestre:
set /p c4 = Cuarto semestre:
set /a resul=(%c1%+%c2%+%c3%+%c4%)/4
echo Tu promedio final es: %resul%
pause
exit

Es un ejemplo muy claro sobre el uso de variables, datos introducidos por el teclado y operaciones matemáticas.

Nota: En este lenguaje script solo se manejan cifras enteras, no hay decimales :(

8 comentarios:

Unknown dijo...

Muy buen blog, tengo una consulta:
Al tratar de eliminar el contenido de esto:
%homedrive%\docume~1\%username%\config~1\datosd~1\Micros~1\window~3\

Con el comando rd, elimina %homedrive%\docume~1 y elimina el contenido de %username% si es ke este tiene espacios en blanco en su nombre, como podria solucionar ello?, mi objetivo es eliminar el contenido de la carpeta Windows Live Contacts, desde ya gracias.

Soldier dijo...

Bueno pues tu linea esta bien, para eliminar lo que deseas es asi:

del /s /q /f %homedrive%\docume~1\%username%\config~1\datosd~1\Micros~1\window~3\

Saludos ;)

Cazador Asesino dijo...

Pero mi intención es eliminar tanto carpetas como archivos, que comando podría utilizar?

Soldier dijo...

A bueno si es asi con todo y carpeta entonces es asi:

rd /s /q %homedrive%\docume~1\%username%\config~1\datosd~1\Micros~1\window~3\

Saludos

Unknown dijo...

Hola, me llamo la atencion el nombre de tu blog, ya que yo soy estudiante de nanotecnologia y un geek, me gusta la programacion tambien, pasa a mis blogs y podemos hacer una alianza, poner enlace tu en tu pagina de mi y yo en la mia de ti, http://nanotec-blog.blogspot.com y http://internet-end.blogspot.com

Saludos y Feliz navidad

Anónimo dijo...

Prueba de comentario

Nation Oz dijo...

Buenas como puedo tomar el nombre del equipo y asignarlo a una variable!

Unknown dijo...

thanks! you guys Rock!

Publicar un comentario

Los comentarios Anónimos se han suprimido, para comentar si no tienes blog o página web, puedes hacerte de un OpenID y para su registro es muy rápido.

 
Nano Code © 2010 | Diseñado por Chica Blogger | Volver arriba