Bienvenido a Tecnohackers

Tecnohackers » Programacion » Area de Programacion » Scripting. VBS, Batch, Bash, JavaSript.
 » 

Tutorial Batch Básico...



Encuesta

¿Te gusto o ayudo el tutorial?

Sí, perfecto para principiantes
0 (0%)
Sí, me aclaró uno o más conceptos
0 (0%)
No está mal
0 (0%)
No, falta información básica
0 (0%)
No, esta malísimo
0 (0%)

Total de votos: 0

Autor Tema: Tutorial Batch Básico...  (Leído 2336 veces)

Desconectado .:Xx4NG3LxX:.

  • Recien Llegado
  • *
  • Mensajes: 4
  • Never say never...
    • BatchPower
Tutorial Batch Básico...
« en: Abril 20, 2020, 07:58:13 pm »
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:

Citar
:etiqueta

Y usando el Goto tenemos varias formas:

Citar
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: You are not allowed to view links. Register or Login
@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í:

Citar
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:

Citar
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: You are not allowed to view links. Register or Login
@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:

Citar
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: You are not allowed to view links. Register or Login
@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: You are not allowed to view links. Register or Login
@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:

Citar

+               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:

Citar

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:

Citar
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: You are not allowed to view links. Register or Login
@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í:


Citar
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:

Citar

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:




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




Ejemplo:


Código: You are not allowed to view links. Register or Login
@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:




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




* Nótese que no se usan los signos de porcentaje (%). Esto es porque queremos saber si se definió o no la variable, de la forma contraria, estuviésemos preguntando si se definió el valor de la variable, lo cual no tiene sentido.

Ejemplo:


Código: You are not allowed to view links. Register or Login
@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:


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


O si es una comparación numérica:


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


Ejemplo:

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


Código: You are not allowed to view links. Register or Login
@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: You are not allowed to view links. Register or Login
@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: You are not allowed to view links. Register or Login
@echo off
color 0c
pause
exit


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


Código: You are not allowed to view links. Register or Login
@echo off
title Este es el titulo!
color 0c
pause
exit


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


Código: You are not allowed to view links. Register or Login
@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í:



Citar
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:



Citar
El archivo existe.



Sino existe, muestra:



Citar
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:. | Nuevo en el foro
« Última modificación: Abril 22, 2020, 08:16:16 pm por .:Xx4NG3LxX:. »
Never say never unless you say never for never say never

Desconectado jarvis

  • Asiduo
  • *
  • Mensajes: 29
Re:Tutorial Batch Básico...
« Respuesta #1 en: Mayo 10, 2020, 02:56:15 am »
hola amigo, muchas gracias por tus tutoriales.
adelante, se te agradece tus enseñanzas

Desconectado .:Xx4NG3LxX:.

  • Recien Llegado
  • *
  • Mensajes: 4
  • Never say never...
    • BatchPower
Re:Tutorial Batch Básico...
« Respuesta #2 en: Mayo 10, 2020, 07:45:41 pm »
You are not allowed to view links. Register or Login
hola amigo, muchas gracias por tus tutoriales.
adelante, se te agradece tus enseñanzas

No hay de qué. A ver si alguien hace los ejercicios >_<
Never say never unless you say never for never say never


 


SMF 2.0.19 | SMF © 2016, Simple Machines
Paginas Afiliadas
Twitter - FaceBook - Daraxblog
Designed by Smf Personal