[Tutorial] Aprende a programar en bat facilisimo!

Tutorial: Aprende a programar en Bat

Creditos: Yeikel2

Comenzemos.

Bat es un tipo de programacion plano que se codifica con ASCII, es decir, con la escritura de nosotros se puede realizar un bat.

Primero que nada, debemos conocer el comando primordial, llamado echo.

Echo es el comando que da ordenes y da cosas por escrito.

Para que el bat no sea tan dificil de comprender, vale la pena que para comenzar a programar, usemos el comando echo

Ahora, para comenzar vamos a crear un comando para que nos salga una pantalla diciendo "Hola".

El codigo que se escribe en el block de notas es este:


@echo off echo hola pause exit


Ahora, vamos a explicarlo

@echo off


Este es el comando que indica que no aparescan las acciones sino el resultado de las mismas.

echo hola


Este comando significa:

echo


Ese comando indica que lo proximo a escribir se mostrara en la consola.

hola


Esto significa que se dira "Hola"

pause


Este comando pausa la consola, hasta que demos a alguna tecla no continuara.

exit


Significa que al presionar una tecla, se cerrara la consola.

Ahora que ya saben que significa @echo, echo, pause y exit, vamos a conocer comandos de este archivo:


@echo off echo Cuando presiones una tecla echo La pantalla se borrara echo Y se escribira algo pause cls echo ¿Ves? pause


Ya conocen @echo, echo y pause, el que no conocen es CLS

CLS es un comando que limpia la consola.

Comandos:

CD: Ubica el batch en un lugar (ejm: CD "C:Archivos de programa"

If not exist "x" goto "x": Si no existe el archivo X ve al orden de acciones x.

Ejemplo:
Un bat que reemplaza el archivo "x" en Archivos de programa por el archivo "c" en archivos de programahot.


@echo off cd "C:Archivos de programa" if not exist "x" goto error if exist "x" goto re :error echo Error en el reemplazo. pause cls :re copy x "C:Archivos de programaHotc" pause exit


Ahora analizemos lo que no han aprendido en ese bat:

:error y/o :re :

Especifica un bat con varios comandos y/o funciones.

copy x "C:Archivos de programaHotc":

Copia el archivo "X" y lo manda a C:Archivos de programaHot y lo renombra a c.

if exist "x" goto re:

Significa que si existe el archivo "x" se ira a la linea de comandos "re".

Ahora, Veamos las variables.

Las variables son cosas/objetos que se establecen en el transcurso del bat.

El comando para establecer una variable es set:


@echo off set jo= Hola echo %jo%


set jo= hola:

Significa que el variable "jo" ahora tendra como resultado "hola"

echo %jo%:

Significa que saldra un mensaje diciendo el variable.

Ahora, comenzemos a usar el comando "if" que acompaña a una variable.

Un archivo que si dices "hola" te mandara a la linea de comandos hola, y si dices adios te envia a adios.


@echo off echo Hola o Adios? pause set /p adho= Di hola o adios if %adho% == hola goto hola if %adho% == adios goto adios :hola echo Hola! pause exit :adios echo Adios! pause exit



Ahora analizemoslo:

set /p adho= (/p):

Significa que le pedira al usuario que especifique la descripcion de la variable adho.

if %adho% == hola goto hola
if %adho% == adios goto adios:

Significa que si se detecta que el variable "adho" es hola o adios, le enviara a la linea de comandos hola o adios.

Ahora, y para terminar con algo dificil, creemos una calculadora que sume y reste.

El codigo es este:


@echo off echo Calculadora de Sumas y Restas echo Programado por Yeikel2 pause goto comand :comand echo Que desea hacer? echo Sumar o restar? set /p sor= Sumar o Restar if %sor% == sumar goto sumar if %sor% == restar goto restar :sumar set /p n1= Numero 1 a sumar set /p n2= Numero 2 a sumar set /a suma= %n1% + %n2% echo Resultado: %suma% pause goto credits :restar set /p n1= Numero 1 a restar set /p n2= Numero 2 a restar set /a resta= %n1% - %n2% echo Resultado: %resta% pause goto credits :credits echo Volver a empezar? set /p rem=Si o no? if %rem% == si goto command if %rem% == no goto creedit :creedit echo Programado por Hunter. pause exit


Lo unico que tengo que explicar es esto:

set /a:

Significa que la proxima variable tiene un valor numerico.

Crear un bat que crea otro bat

Codigo:


@echo off echo Creador de otro bat echo Espera. pause>nul echo @echo off>>otrobat.bat echo echo Otro bat by Hunter>>otrobat.bat echo pause>>otrobat.bat echo cls>>otrobat.bat echo echo Holaaa>>otrobat.bat echo set /p param= Tu nombre? >>otrobat.bat echo echo mucho gusto %param%>>otrobat.bat echo pause>>otrobat.bat pause echo Bat creado. start otrobat.bat pause echo Adios, By Yeikel2 pause exit


a asi para que se cree otro archivo:

echo comandoausar>>nombredelbat.bat

el comando Start significa que se abrira "x" archivo.

Lastima que con eso, los variables no funcionan T_T

Ufff que lala hacer un tuto de bat -_-

Añadido:

Codigo fuente de un reemplazador que pide al usuario que especifique ubicacion del archivo y nombre del mismo.


@echo off echo Reemplazador de archivos echo By Yeikel2 pause echo Escribe el lugar donde tienes el archivo set /p place= echo El nombre del archivo set /p name= echo El lugar del archivo nuevo set /p place2= echo El nombre del archivo nuevo set /p name2= pause echo Escribe R cuando quieras reemplazar set /p r= if %r% == r goto reem :reem echo Reemplazando... cd "%place%" copy "%name%" "%place2%%name2%" pause goto credits :error echo Error, no escribiste R. echo Pulsa cualquier tecla para continuar pause>nul :credits echo By xxxx echo Programado por Yeikel2


espero que les haya gustado mi tutorial y es re facil asi que animense, comenten

15 comentarios - [Tutorial] Aprende a programar en bat facilisimo!

@djmaxx2009
esta bueno pero no entendi un joraca
@gammexane
Acá te dejo uno que hice yo hace un tiempo para probar la conexión y la latencia contar servidores de counter y WoW.


@echo off

:: ----------------------------------------------------
:: Variables de configuración
:: ----------------------------------------------------
set vHost=206.16.23.35
set vFileRed=.\AnalisisConfRed.txt
set vFileTrace=.\AnalisisTrace.txt
set vFilePing=.\AnalisisPing.txt
set vCountTrace=4
set vCountPing=150
:: ----------------------------------------------------
cls
echo.
:: ----------------------------------------------------
:: Analisis de red
:: ----------------------------------------------------
echo Analizando configuracion de red.
echo ########################################## > %vFileRed%
echo # Configuracion actual de red >> %vFileRed%
echo ########################################## >> %vFileRed%
echo
ipconfig /all > %vFileRed%
echo El analisis finalizo con exito. Archivo salvado: %vFileRed%
echo.

:: ----------------------------------------------------
:: Trace Route
:: ----------------------------------------------------
echo Ejecutando analisis de ruteo a host: %vHost%
echo ########################################## > %vFileTrace%
echo # Trace Routes a %vHost% >> %vFileTrace%
echo ########################################## >> %vFileTrace%

FOR /L %%i IN (1 1 %vCountTrace%) DO (
echo Ejecutando Trace Route %%i / %vCountTrace%
echo. >> %vFileTrace%
echo ****************************************** >> %vFileTrace%
echo * Trace nro %%i >> %vFileTrace%
echo ****************************************** >> %vFileTrace%
tracert %vHost% >> %vFileTrace%
)
echo Analisis de ruteo finalizado con exito. Archivo salvado: %vFileTrace%
echo.

:: ----------------------------------------------------
:: Ping
:: ----------------------------------------------------
echo Ejecutando Ping a host: %vHost%. Cantidad de paquetes a enviar: %vCountPing%
echo ########################################## > %vFilePing%
echo # Ping a %vHost% - Saltos %vCountPing% >> %vFilePing%
echo ########################################## >> %vFilePing%
ping -n %vCountPing% %vHost% >> %vFilePing%
echo Analisis ping ejecutado con exito. Archivo salvado: %vFilePing%
echo.
echo Bye.
pause

@JonySniuk
No me toma el comando "pause", osea, ni bien lo ejecuto, se cierra
@gammexane
JonySniuk dijo:No me toma el comando "pause", osea, ni bien lo ejecuto, se cierra


¿en el mío? Igual el pause es opcional. Pero no puede ser que no te lo tome.
@JonySniuk
gammexane dijo:
JonySniuk dijo:No me toma el comando "pause", osea, ni bien lo ejecuto, se cierra


¿en el mío? Igual el pause es opcional. Pero no puede ser que no te lo tome.


Hasta en el primer ejemplo, lo guardé como "hola.bat" y se ejecuta y se cierra al toque
@ElfantasmadelaB
no entiuendo mucho..
para que sirve bien este tipo de comandos??
@gammexane +1
JonySniuk dijo:
gammexane dijo:
JonySniuk dijo:No me toma el comando "pause", osea, ni bien lo ejecuto, se cierra


¿en el mío? Igual el pause es opcional. Pero no puede ser que no te lo tome.


Hasta en el primer ejemplo, lo guardé como "hola.bat" y se ejecuta y se cierra al toque



@echo off
echo Hola
pause
exit


Cuando el amigo del tutorial lo puso dentro de un quote, quedo todo en una sola línea. Deberían ser varias, como mi arriba.
@gammexane
ElfantasmadelaB dijo:no entiuendo mucho..
para que sirve bien este tipo de comandos??


¿Hoy por hoy? casi te diría que para nada. Esto te salvaba la vida cuando windows no existía y se usaba DOS.
Básicamente es un lenguaje script para ejecutar varios comandos a la vez o hacer tareas repetitivas...
@thebossvictor
yo los uso para volver locas als pcs de la uni