Manual de Batch
Manual de Batch
Manual de Batch
INDICE
1-Introduccin
2-Como crear un programa
3-La consola de comandos
4-Eco off / on
5-Help
6-Abrir carpetas, ver su contenido y ejecutar archivos
7-Comando edit
8-Echo
9-Comandos basicos
10-Redirecciones y filtros
11-Set, asignar variables y operaciones
12-Goto
13- IF
14- Ejemplos de programas basicos (calculadora)
---------------------------------------------------INTRODUCCIN
BATCH es un lenguaje de procesamiento por lotes que se ejecuta en la consola MS-DOS.Los
programas en Bat se crean en una hoja de texto plano como la del blcok de notas por ej.Se
pueden poner todos los comandos permitidos en la consola de comandos, al ejecutar el
programa los comando se ejecutaran de forma secuencial. Este es el tipico programa de
HOLA MUNDO!:
Cdigo: (escriban este codigo en al block de notas)
@echo off
echo HOLA MUNDO!
pause
exit
lo que hace es escribir en la pantalla HOLA MUNDO!, mas adelante ire poniendo ejemplos
mas complicados.
ECHO OFF / ON
Este es muy facil, pero tambien es importante. Si has visto algun programa en BATCH, habras
notado que todos empiezan as:
Cdigo:
@echo off
Lo que hace este comando es que no salga los comandos que escribe s en la pantalla, si
haces un programa como el HOLA MUNDO y no escribes el echo off al princion envez de salir
esto:
Cdigo:
HOLA MUNDO!
Saldria esto:
Cdigo:
c:WINDOWSsystem32> echo HOLA MUNDO!
HOLA MUNDO!
y as no queda muy bien, si queremos volver a activar el echo escribimos echo on. Podemos
hacer pruevas en la consola y comprobarlo.
HELP
El comando HELP sirve para pedir ayuda sobre un comando o para ver la lista de comandos
disponibles. Para ver los comandos disponibles Escribimos HELP en la consola, nos saldra
esto:
Cdigo:
Para obtener mas informacin acerca de un comando especfico, escriba HELP
seguido del nombre de comando
ASSOC Muestra o modifica las asociaciones de las extensiones de archivos.
AT Planifica comandos y programas para ejecutarse en un equipo.
ATTRIB Muestra o cambia los atributos del archivo.
BREAK Establece o elimina la comprobacin extendida de Ctrl+C.
CALCS Muestra o modifica las listas de control de acceso (ACLs) de archivos.
CALL Llama a un programa por lotes desde otro.
CD Muestra el nombre del directorio actual o cambia a otro directorio.
CHCP Muestra o establece el nmero de p gina de cdigos activa.
CHDIR Muestra el nombre del directorio actual o cambia a otro directorio.
CHKDSK Comprueba un disco y muestra un informe de su estado.
CHKNTFS Muestra o modifica la comprobacin de disco al iniciar.
Nos solo hay estos comandos, tambien hay algunos como el ping, netstat, tracert,... pero estos
mas que comandos son programas que estan en system 32, los programas que estan en
system 32 se pueden ejecutar desde la consola escribiendo su nombre.
Si necesitamos ayuda sobre un comando de los de esta lista solo hay que usar HELP "AQUI
EL COM,ANDO". Por ejemplo mas arriba hems visto la ayuda del comando color, para ver
esto tenemos que escribir:
Cdigo:
help color
El comando TREE te muestra el interio de las carpetas de forma "grafica" (de forma
ramificada). Si estas en el escritorio y escribes TREE te muestra lo que hay en el escritorio y el
contenido de las carpetas del escritorio.
Ejecutar archivos: Para ejecutar archivos, si el archivo .exe o .bat esta en system 32 solo hay
que escribir su nombre (no es necesario poner la extension si es .bat o .exe). Si el archivo no
esta en system 32 entramos en la carpeta en que este y lo ejecutamos, si no tiene extenision
.exe ni .bat entonces si que hay que escribir la extension
COMANDO EDIT
Este coamdo lo que hace es abrir una especie de bolc de notas pero al estilo MS-DOS, tiene
un menu de guardar, cargar, copiar, pegar,... Tambien se pueden abrir archivos de texto as:
Cdigo:
edit hola.txt
Esto abre el archivo "hola.txt". Aqui pongo la ayuda del comando edit para ver sus mados de
apertura:
Cdigo:
ECHO
El echo es el comando mas simple y mas usado en programas en BATCH, lo unico que hace
es imprimir en la pantalla lo que se escribe detras del echo, mira este ejemplo:
Cdigo:
@echo off
cls
echo Hola!, cuanto tiempo si verte
pause>nul
echo Como estas?
pause>nul
exit
Este codigo hace que es escriba en la pantalla "HOLA!, cuanto tiempo sin verte" y cuando
pulsas una tecla te dice: "Como estas?", cuando vuleves a pulsar una tecla el prgrama acaba.
Esto no tiene mas complicacion as que pasamos al siguiente punto.
COMANDOS BASICOS
Aqui boy a explicar algunos comandos del MS-DOS muy comunes en programas .bat.
-Pause: Este comando lo que hace es que para el programa hasta que se pulse una tecla. Es
muy util porque si creamos un programa como este:
Cdigo:
cls
@echo off
echo HOLA
al ejecutarlo se abrira y se cerrara tan rapidamente que no podremos ver lo que hace, en
cambio haciendo as:
Cdigo:
@echo off
cls
echo HOLA
pause
el programa no se cerrara hasta que pulsemos una tecla. Al escribir el pause en un programa
cuando y lo ejecutemos, se vers esto:
Cdigo:
Presione un tecla para continuar...
si queremos que no se vea nada tenemos que escribir pause>nul, el simblo >es una
redireccion que explicare mas adelante
-Cls: Esto no tiene ninguna complicaci, lo unico que hace es borrar lo que hay escrito en la
pantalla, pongo un ejemplo:
Cdigo:
@echo off
dir
pause>nul
cls
pause>nul
dir nueva carpeta
pause>nul
Este codigo te muestra el interior de la carpeta donde lo abres, al pulsar una tecla borra la
pantalla y cuando vuelves a pulsar otra tecla te muestra el contenido de nueva carpeta que
debe estar dentro de la carpeta donde se ha ejecutado.
-Time: Este comando muestra y te permite cambiar la hora del sistema
-Date: Este comando muestra y te permite cambiar la fecha del sistema
-Del: Sirve para borrar un fichero. Mira este ejemplo:
Cdigo:
@echo off
del /q texto.txt
Este codigo borra de la carpeta donde se ha abierto el archivo "texto.txt" sin pedir confirmacion
( para no pedir confirmacion hay que usar el atributo /q). Para mas ayuda escribir help del.
Si queremos borrar todos lo archivos que comiencen por texto y tengan la extension .txt,
escribiremos esto:
Cdigo:
@echo off
del /q texto*.txt
Boy a poner algunos ejemplos de uso de comodines como el anterior, imagnemos que
queremos borrar un archvo que se llama texto pero que en la extension solo sabemos la 1
letra y la segunda, entonces escribimos esto:
Cdigo:
@echo off
del /q texto.t?t
Bien, creo que ya he puesto los comandos mas basicos, pasemos a la siguiente parte
REDIRECCIONES Y FILTROS
Aqui boy a explicar el uso de las redirecciones y los filtros, la cosa es bastante sencilla, pero
no es tan sencilla como lo visto anteriormente. Primero hablemos de las redirecciones:
Por defecto los comando que se ejecutan van dirigidos a la pantalla de la consola, pero eso lo
podemos cambiar, anteriormente hemos visto un ejemplo de redireccion con pause, al escribir
un comando >nul lo que hara es que le comando se jecuta pero no muestra nada en ningn
sitio, ejemplo:
Cdigo:
@echo off
echo hola>nul
dir>nul
tree>nul
pause>nul
Nada de lo que se ha escrito aqui se vera en la pantalla.
Se puede redirigir a otros sitios como la impresora (>prn) o a algun archivo
(>nombre_del_archivo.extension). Pongo algun ejemplo:
Cdigo:
@echo off
cls
echo HOLA>texto.txt
echo HOLA DE NUEVO>>texto.txt
dir>prn
pause>nul
Si te has fijado en el primer echo se redirige al archivo texto.txt (si no esta lo crea), si ese
archivo tubiese algo escrito lo borraria todo para escribir "HOLA", pero bajo sale una
redireccion as ">>" esto hace que emvez de borrar el archivo siga escribiendo en la ultima
linea.
Ahora pasemos a hablar de los filtros, los filtros sirven para cambiar la salida de un comando
se usan mediante la barra horizontan " | " (para escribirla hay que presionar alt + 124). Pongo
aqui dos filtros:
| sort ----> Sirve para ordenar la salida.
| more --> Sirve para poder ver todos los datos que se imprimen en la pantalla mas despacio.
COMANDO GOTO
El comando goto sirve para saltar a una etiqueta, aqui explicare como definir una etiqueta y
como usar goto para saltar hasta ella
Para definir una etiqueta solo hay que escribir:
Cdigo:
:etiqueta
(por si no se ve muy claro antes de "etiqueta" hay dos puntos " : ", si en un programa
hubiesemos definido esa etiqueta y quisieramos volver,
usamos esto
Cdigo:
goto etiqueta
Pondre un ejemplo usando los 2:
Cdigo:
@echo off
:inicio
cls
echo Cuantos aos tienes?
set /p edad=
echo .
echo tienes %edad% aos
pause>nul
goto inicio
Este programa nunca acabaria, porque te pregunta constantemente tu edad.
IF
Boy a explicar el comando IF para hacer comparaciones entre variables y otros, primero
pongo aqui la tabla de comparaciones:
Cdigo:
EQU - igual
NEQ - no igual
LSS - menor que
LEQ - menor que o igual
GTR - mayor que
GEQ - mayor que o igual
(Esta tabla esta copiada del manual de Programacion avanzada de Sirdarckcat)
Para pone igua tambien se puede poner "==" y para poner diferente "not="
El comando If se usa as:
Cdigo:
If %variable%==23 goto verdadero
Este codigo lo que hace es si la variable "variable" es 23 salta a la e tiqueta "verdadero".
Pondre aqui un ejemplo de programa usando IF:
Cdigo:
@echo off
echo Cuanto aos tienes?
set /p edad=
if %edad% GEQ 18 goto mayor
if %edad% LSS 18 goto menor
:mayor
cls
echo Eres mayor de edad
pause>nul
exit
:menor
cls
echo Eres menor de edad
pause>nul
exit
Este programa te pregunta cuantos aos tienes y te dice si eres mayor de edad o menor
Igual que se compara con numeros se pueden comprar cadenas de texto:
Cdigo:
@echo off
:inicio
cls
echo Introduce la contrasea
set /p contra=
if %contra%==admin goto correcto
else
goto incorrecto
:correcto
cls
echo CORRECTO!
pause>nul
exit
:incorrecto
cls
echo LO HAS ESCRITO MAL, VULVE A INTENTARLO
pause>nul
goto inicio
Si te has dado cuenta en este programa he usado el comando else, que significa que si la
condicion no se cumple...
Aqui acaba el tutorial ahora pondre aglun codigo mas comlejo de ejemplo y ya esta.
CODIGOS DE EJEMPLOS
Calculadora:
Cdigo:
@echo off
title CALCULADORA--------Creado por Zhynar_X
:menu
cls
echo --------------------------MENU---------------------------------echo,
echo 1.SUMA
echo 2.RESTA
echo 3.MULTIPLICACION
echo 4.DIVISION
echo,
echo 5.SALIR
set /p opt=
if %opt%==1 goto suma
if %opt%==2 goto resta
if %opt%==3 goto multi
if %opt%==4 goto division
if %opt%==5 goto s
:suma
cls
set /p suma1=Primer caracter:.....................
echo +
set /p suma2=Segundo caracter:....................
echo ___________
set /a suma3=%suma1%+%suma2%
echo resultado: %suma3%
set /a suma3=%suma1%+%suma2%
echo Pulse una tecla para volver al menu
pause>nul
goto :menu
:resta
cls
set /p resta1=Primer caracter::.....................
:volver
cls
echo Ok, presione una tecla para volver al menu
pause>nul
goto menu
:sal
cls
echo Ok, presione una tecla para salir
pause>nul
exit
Eso es todo por ahora.
Si quieren seguir programando tengo un Manual basico de C que hice yo mismo y un
compilador de C y C+
les agradeceria mucho que pongan puntos si les sirvio el manual,gracias