DonsoftST
¿Quieres reaccionar a este mensaje? Regístrate en el foro con unos pocos clics o inicia sesión para continuar.

[TUTORIAL] Tutorial Básico de Batch

Ir abajo

Tutorial [TUTORIAL] Tutorial Básico de Batch

Mensaje por .:Xx4NG3LxX:. el Miér 02 Dic 2020, 10:54 am

Saludos, quisiera compartirles este tutorial para Batch básico para los que recién empieza... Disfruten.

Tutorial Básico de Batch

Índice:

1.- Introducción.
2.- Comandos básicos.
3.- Mi primer programa.
4.- Manipulación de variables.
5.- Condicionales.
6.- Algunos comandos para la personalización.
7.- Ejercicios.
8.- Conclusión.




1. Introducción

- Este tutorial está creado con el fin de hacer que los más principiantes se familiaricen con Batch, y así poder ver más allá de sus límites. Ya que no se le considera un "lenguaje de programación" como tal, mucha gente lo subestima, esa es la principal razón por la que me gusta Batch, para poder superarme a mi mismo.

¿Qué es Batch?

- Según WikiPedia, Batch es:

• Archivo batch, un archivo de texto con extensión *.bat que contiene una secuencia de órdenes para ser ejecutadas en sistemas DOS, OS/2 y Microsoft Windows.

 Entonces, Batch es un archivo con extensión *.bat que en su interior contiene una serie de comandos escritos por la persona, es decir, un código. Cada comando es procesado por el cmd.exe del Windows, y hace que el código se cumpla en orden.

¿Cómo hago un archivo Batch?

- Simple, sólo debes tener en tu PC, laptop o computadora, cualquier editor de texto. Incluso bastaría con el notepad.exe (bloc de notas) o el wordpad del Windows, aunque existen editores de texto más avanzados como el notepad++ (recomendado). Abre tu editor de texto, luego da click en Guardar Como, y guardalo con la extensión *.bat (con un nombre cualquiera, ej: tutorial.bat) y ejecútalo.

2. Comandos básicos

- Algunos de los comandos "más básicos" de Batch son los siguientes:

Echo: activa y/o desactiva el eco, "@echo off" apaga el eco en esa línea y en todas las demás. También muestra un mensaje en pantalla. Se utiliza "echo." (nótese el punto) cuando queremos dar un salto de línea, de hecho, hay más de una forma de dar un salto de línea; "echo.", "echo+" y "echo,". Escribe "echo" sin nada más y verás el estado actual del eco (on/off ; encendido/apagado)

Pause: aplica una pausa al programa. Sin éste, el programa se cerraría rápidamente.

Cls: borra lo que esté en pantalla.

Goto: se utiliza para ir a una etiqueta específica. Una etiqueta es un lugar dentro del código que se marca de la siguiente forma:


:etiqueta

Y usando el Goto tenemos varias formas:


Goto :etiqueta
Goto:etiqueta
Goto etiqueta

Rem: se utiliza para agregar comentarios o aclaraciones dentro del comando. Este comando no será "leído" por el cmd.exe. También se puede sustituir este comando por "::" (nótese los dos puntos dobles).

Exit: termina con el programa.

3. Mi primer programa

- Muy bien, llegó la hora de crear nuestro primer programa; el único e inigualable "Hola mundo.bat"

• Abre tu editor de texto y pega el siguiente código:

Código:

@echo off
echo.
Rem lo siguiente se encargara de mostrar el mensaje.
echo Hola mundo
pause
cls
echo Viste? Borró el mensaje.
pause
exit

Explicación:

@echo off: esto se encarga de apagar el eco de su línea y de todas las demás. Prueba quitando esa línea o quitando el signo de "@".

echo.: damos un salto de línea.

rem: damos una aclaración al código.

echo: imprime en pantalla el texto especificado.

pause: aplica una pausa al programa. Prueba quitándolo, y verás los resultados.

cls: hace que se borre lo que este escrito en pantalla.

exit: termina el programa.

 Al ejecutar el código, vemos que en el cmd.exe nos muestra "Hola mundo" y debajo "Pulse una tecla para continuar . . .". Para evitar que nos muestre ese mensaje, debemos agregarle ">nul" al comando "pause", así:


pause>nul

* Prueba el código anterior con el "pause>nul".

4. Manipulación de variables

- El tema de las variables es muy simple y fácil de comprender. Establecer una variable se hace de la siguiente manera:


set variable=valor

 Donde "variable" es el nombre de tu variable y "valor" es el valor de la variable. Para acceder al valor de una variable, se debe escribir el nombre de la variable entre signos de porcentaje (%). Copia y pega el siguiente código en tu editor de texto:

Código:

@echo off
set saludo=Hola mundo
echo.
echo %saludo%
pause>nul
exit

Explicación: (como ya saben la función de algunos de los comandos, no los explico con detalles).

@echo off: apaga el eco

set saludo=Hola mundo: declaramos la variable llamada "saludo" con "Hola mundo" como valor.

echo.: salto de línea.

echo %saludo%: muestra el contenido de la variable "saludo" en pantalla.

pause>nul: aplica una pausa al programa (sin mostrar ninguna clase de mensaje.

exit: finaliza el programa.

 También podemos dejar que el usuario le dé un valor a una variable con la siguiente sintaxis:


set/p variable=Texto a mostrar:

 Esta sintaxis permite al usuario ingresar un valor a la variable indicada. En dónde dice "Texto a mostrar:", ese es el mensaje a mostrar (prompt). Además, el "set/p" establece una especie de "pause>nul" y es por eso que no pasa al siguiente comando. Analiza tu mismo este código:

Código:

@echo off
echo.
set/p var=Escribe lo que sea:
cls
echo.
echo %var%
pause>nul
exit

Explicación: Ninguna, analiza tu mism@ el código.

 Con el comando "set" podemos realizar operaciones matemáticas con "set/a". Por ejemplo:

Código:

@echo off
set/a operacion=2+1
echo %operacion%
pause>nul
exit

 Aquí vemos que se guarda el resultado de "2+1" (es decir, 3) en la variable "operacion". Luego de esto, mostramos el contenido (o resultado) de dicha variable.

Los signos más usados para realizar operaciones matemáticas, son:



+               Suma
-                Resta
/                División
*                Multiplicación


* Probar modificando el más (+) del código anterior por alguno de los signos expuestos.

5. Condicionales

- Los condicionales establecen lo siguiente:



Si pasa algo, hacer esto
Ó
Si pasa algo, hacer esto, sino hacer esto


 En Batch y en casi cualquier lenguaje de programación (si acaso no en todos) los condicionales son "If" y "Else", "Si..." y "Sino" respectivamente. Su sintaxis es la siguiente:


If [not] %var1%==%var2% (comando(s)...)

Not: se lleva a cabo el comando solo si la condición es falsa.

 Para comparar cadenas, se utiliza "==" (nótese el doble igual).

 Pongo un ejemplo:

Código:

@echo off
echo.
set/p var=Escribe un numero:
if %var%==10 (goto :fav)
exit
:fav
cls
echo.
echo El 10 es mi numero favorito.
pause>nul
exit


Explicación:

- Bien, primero decimos al usuario que introduzca un número, si dicho número es igual a 10, el código se irá hacia la etiqueta ":fav". Lo primero que se hace en dicha etiqueta es borrar lo que hay en pantalla, luego muestra el mensaje. En fin, si el numero no es igual a 10, se saldrá del programa, esa es la función del "exit" debajo del "if", aunque se podría haber hecho así:



if %var%==10 (goto :fav) else (exit)

 ¿Se entiende? ¿Todo bien hasta ahora? Perfecto.

 El comando "If" acepta también op-de-comparación, los cuales son los siguientes:



EQU - igual a (equivale a "==")
NEQ - no igual a
LSS - menor que
LEQ - menor o igual que
GTR - mayor que
GEQ - mayor o igual que


* Los op-de-comparación se usan exclusivamente con números.

 También se puede saber si existen archivos, si se definió una variable, incluso con el modificador "/i" se puede realizar comparaciones de cadena que no distinguen entre mayúsculas y minúsculas. Se hace de la siguiente forma:

Comprobar la existencia de un archivo o carpeta:





If exist archivo (comando(s)...)




Ejemplo:


Código:

@echo off
If exist texto.txt (goto :si) else (goto :no)
:si
echo.
echo El archivo existe.
pause>nul
exit
:no
cls
echo.
echo El archivo no existe.
pause>nul
exit



 Analiza la ruta del programa, y ve si existe el archivo "texto.txt". Si existe va a la etiqueta ":si" y sino va a la etiqueta ":no".

Comprobar si se definió una variable:





If [not] defined variable (comando(s)...)




* Nótese que no se usan los signos de porcentaje (%).

Ejemplo:


Código:

@echo off
:inicio
set/p var=Escribe algo:
If not defined var (goto :inicio)
cls
echo.
echo Escribiste: %var%
pause>nul
exit



 En este código vemos que lo primero que creamos es una etiqueta llamada "inicio", dentro, le decimos al usuario que escriba algo. Si el usuario no introduce (define) nada en la variable, irá a ":inicio" nuevamente (es decir, hacemos que se repita, siempre y cuando no defina la variable). Si se define la variable, borrará lo que está en pantalla y mostrará el mensaje de lo que escribió el usuario.

Comparación de cadenas:



If %var1%==%var2% (comando(s)...)


O si es una comparación numérica:



If %var1% equ %var2% (comando(s)...)


Ejemplo:

Para comparación sin importar mayúsculas y minúsculas...


Código:

@echo off
:principio
set saludo=HoLa
set/p saludo2=Escribe hola:
If not defined saludo2 (goto :principio)
::Esto es para ver si se ha escrito "hola" sin importar mayúsculas y minúsculas.
If /i %saludo2%==%saludo% (goto :hola) else (goto :no)
:hola
cls
echo.
echo Bien! Has escrito %saludo2%
pause>nul
exit
:no
cls
echo.
echo Debes escribir "hola".
pause>nul
goto :principio


Explicación:

- Como siempre empezamos creando una etiqueta (principio), establecemos una variable (saludo) con "HoLa" como valor (nótese las mayúsculas y minúsculas). Luego de esto pasamos a decirle al usuario que escriba "hola". Si no se define la variable (saludo2), irá a la etiqueta "principal" (principio), de lo contrario, verifica que lo que haya escrito el usuario sea "hola" sin importar mayúsculas de minúsculas. Si es así irá a la etiqueta ":hola", mostrando un mensaje, sino irá a la etiqueta ":no", mostrando otro.

Para comparaciones numéricas...


Código:

@echo off
:inicio
set numero=10
set/p num=Adivina el numero:
if not defined num (goto :inicio)
::Lo siguiente hará las comparaciones numericas
if %num% NEQ %numero% (goto :fail)
cls
echo.
echo Lo siento, no es el numero
pause>nul
goto :inicio
:pro
cls
echo.
echo Has adivinado el numero! Felicidades!
pause>nul
exit


Explicación:

- Bien, primero creamos la etiqueta ":inicio", luego declaramos una variable (numero) con el valor "10". Después, le decimos al usuario que "adivine el numero", si no se define la variable, irá la etiqueta ":inicio". Si se define la variable, hará comparaciones numéricas; si la variable "num" no es igual a la variable "numero" (10), irá a la etiqueta ":fail", sino, irá a la etiqueta ":pro", indicando que "ha adivinado el numero".

* Podemos darle más utilidades al "if" pero ya sería para un tutorial más "avanzado".


6. Algunos comandos para la personalización

- Bueno, los siguientes comandos que se mostrarán a continuación, son fáciles de usar:

Color: establece un color de fondo y/o de letras en formato hexadecimal a la consola. Ejemplo:


Código:

@echo off
color 0c
pause
exit


Title: cambia el título de la ventana. Ejemplo:


Código:

@echo off
title Este es el titulo!
color 0c
pause
exit


mode: modifica el tamaño de la ventana. Ejemplo:


Código:

@echo off
mode con cols=30 lines=20
title Este es el titulo!
color 0c
pause
exit


* El comando mode tiene muchas más funciones, escribe "mode /?" En el cmd para ver más detalles.

* Escribir "color /?" En el cmd y "title /?"

Explicación:

- Explicaré sólo el comando "mode" ya que es el más complejo:

Mode: el comando en sí.

Con: la ventana del cmd.

Cols: numero de columnas.

Lines: numero de líneas.


7. Ejercicios

- A continuación verás algunos ejercicios propuestos por mí. Recomiendo no estresarse tanto haciéndolos.

Ejercicio 1:

* Hacer un Batch que te pregunte tu nombre y edad, y luego mostrarlo en pantalla. La salida debe ser así:




Nombre: %nombre%
Edad: %edad%



Ejercicio 2:

* Crear un archivo de texto llamado ejercicio.txt. Luego comprobar si existe o no con un Batch. La salida debe ser:

Si existe, muestra:




El archivo existe.



Sino existe, muestra:




El archivo no existe.



Ejercicio 3:

* Hacer un Batch que compare dos números y diga cual de ellos es mayor. La salida tiene que ser como quieran.




8. Conclusión

- Bueno, eso fue todo, espero que les haya ayudado si quiera un poco. Sigue leyendo tutoriales por internet y/o libros.

 Si tienes alguna(s) duda(s) no pienses dos veces antes de postearla(s).

¡Gracias por leer!

* Envíame tu código de los ejercicios por mp (mensaje personal)


Att: .:Xx4NG3LxX:.
.:Xx4NG3LxX:.
.:Xx4NG3LxX:.
Moderadores
Moderadores

Masculino
Venezuela
Mensajes Mensajes : 14
Puntos Puntos : 36
Fecha de inscripción : 07/11/2020
Localización : Detrás de tí

https://batchpower.foroactivo.com/

Volver arriba Ir abajo

Volver arriba


 
Permisos de este foro:
No puedes responder a temas en este foro.