-Es bastante sencilla, por lo menos para mi.-Se puede programar en un bloc de notas sin necesidad de compiladores.
-Pude servir en otros lenguajes que permitan hacer llamadas a la shell (la shell es la consola de comandos).
-Esta bastante bien para empezar a programar
Bueno, creo que con esto ya basta. Empiezo el titorial
INDICE
1-Introducción
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
INTRODUCCIÓN
bien aqui boy a hacer una introduccion a lo que es la programacion BATCH, en la programacion en BATCH se pueden poner todos los comandos permitidos en la consola de comandos, al ejecutar el programa los comando se ejecutarand de forma secuencial. Este es el tipico programa de ¡HOLA MUNDO!:
Código:
@echo off
cls
echo ¡HOLA MUNDO!
pause>nul
COMO CREAR UN PROGRAMA
Para crear un programa solo tenemos que usar cualquier editor de texto (yo uso el bloc de notas), en el editor escribimos el programa, podeis
probar el programa de HOLA MUNDO y tenemos qu guardar el archivo con esxtension .bat o .cmd. Si guardamos con .cmd solo funcionara en windows XP y si lo guardamos con extension .bat funcionara en todos, es preferible guardarlo como .bat.
¿Porque se le llama .bat?
La respuesta es sencilla, en MS-DOS las extensiones tienen un maximo de 3 letras y se usan las tres primeras letras de BATCH
LA CONSOLA DE COMANDOS
La consola de comando es esa pantalla negra que seguro que habreis visto alguna vez, para ir a la consola vamos a INICIO alli entramos en EJECUTAR y escribimos "cmd" sin las comillas. Nos saldra una pantalla negra alli se pueden escribir los comandos, por ejemplo escribir esto:
Código:
echo ¡HOLA A TODOS!!
Personalizar la consola de comandos:
Seguro que a lagunos les gustaria cambiar el color de las letras de la consola de comandos o cambiar el color de fondo, bien pues para eso tenemos el comando color. Explico aqui un poco.
Esta es la descripcion del comando al usar HELP con ese comando:
Código:
Configura los colores predeterminados de primer y segundo plano de la consola.
COLOR [atr]
atr Especifica el atributo de color de la salida de consola
Los atributos de color est n especificados con dos d¡gitos hex (el primero
corresponde al segundo plano; el segundo al primer plano). Los d¡gitos pueden ser cualquiera de los siguientes valores:
0 = Negro 8 = Gris
1 = Azul 9 = Azul claro
2 = Verde A = Verde claro
3 = Aguamarina B = Aguamarina claro
4 = Rojo C = Rojo claro
5 = Purpura D = Purpura claro
6 = Amarillo E = Amarillo claro
7 = Blanco F = Blanco brillante
Si no se indican argumentos, este comando restaura el color que ten¡a
cuando se inici¢ CMD.EXE. Este valor proviene de la ventana
de la consola, el modificador de l¡nea de comando o el valor del registro
DefaultColor.
El comando COLOR configura ERRORLEVEL a 1 si se realiza un intento de ejecutar el comando COLOR con el mismo color de primer y segundo plano.
Por si no ha quedado muy claro teneis que escribir color segido de dos digitos, el primero indica el color de fondo y el segundo indica el color de las letras. Ejemplo:
Código:
color 0a
ECHO OFF / ON
Este es muy facil, pero tambien es importante. Si has visto algun programa en BATCH, habras notado que todos empiezan asi:
Código:
@echo off
Código:
¡HOLA MUNDO!
Código:
c:\WINDOWS\system32> echo ¡HOLA MUNDO!
¡HOLA MUNDO!
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:
Código:
Para obtener mas informaci¢n acerca de un comando espec¡fico, 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 comprobaci¢n 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 n£mero de p gina de c¢digos 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 comprobaci¢n de disco al iniciar.
CLS Borra la pantalla.
CMD Inicia una nueva instancia del int‚rprete de comandos de Windows
COLOR Establece los colores de primer plano y fondo predeterminados de la
consola.
COMP Compara el contenido de dos archivos o un conjunto de archivos.
COMPACT Muestra o cambia el estado de compresi¢n de archivos en particiones
NTFS.
CONVERT Convierte vol£menes FAT a vol£menes NTFS. No puede convertir
la unidad actual.
COPY Copia uno o m s archivos a otro lugar.
DATE Muestra o establece la fecha.
DEL Elimina uno o m s archivos.
DIR Muestra una lista de archivos y subdirectorios en un directorio.
DISKCOMP Compara el contenido de dos disquetes.
DISKCOPY Copia el contenido de un disquete en otro.
DOSKEY Edita l¡neas de comando, memoriza comandos y crea macros.
ECHO Muestra mensajes, o activa y desactiva el eco.
ENDLOCAL Termina la b£squeda de variables de entorno del archivo por lotes.
ERASE Elimina uno o m s archivos.
EXIT Sale del programa CMD.EXE (interfaz de comandos).
FC Compara dos archivos o conjunto de archivos y muestra las diferencias
entre ellos.
FIND Busca una cadena de texto en uno o m s archivos.
FINDSTR Busca cadenas de texto en archivos.
FOR Ejecuta un comando para cada archivo en un conjunto de archivos.
FORMAT Da formato a un disco para usarse con Windows.
FTYPE Muestra o modifica los tipos de archivo utilizados en una asociaci¢n
de archivos.
GOTO Direcciona el int‚rprete de comandos de Windows a una l¡nea en
un programa por lotes.
GRAFTABL Permite a Windows mostrar un conjunto de caracteres extendidos
en modo gr fico.
HELP Proporciona informaci¢n de ayuda para los comandos de Windows.
IF Ejecuta procesos condicionales en programas por lotes.
LABEL Crea, cambia o elimina la etiqueta del volumen de un disco.
MD Crea un directorio.
MKDIR Crea un directorio.
MODE Configura un dispositivo de sistema.
MORE Muestra la informaci¢n pantalla por pantalla.
MOVE Mueve uno o m s archivos de un directorio a otro en la misma unidad.
PATH Muestra o establece una ruta de b£squeda para archivos ejecutables.
PAUSE Suspende el proceso de un archivo por lotes y muestra un mensaje.
POPD Restaura el valor anterior del directorio actual guardado por PUSHD.
PRINT Imprime un archivo de texto.
PROMPT Cambia el s¡mbolo de comandos de Windows.
PUSHD Guarda el directorio actual y despu‚s lo cambia.
RD Elimina un directorio.
RECOVER Recupera la informaci¢n legible de un disco da¤ado o defectuoso.
REM Graba comentarios en archivos por lotes o CONFIG.SYS.
REN Cambia el nombre de uno o m s archivos.
RENAME Cambia el nombre de uno o m s archivos.
REPLACE Reemplaza archivos.
RMDIR Elimina un directorio.
SET Muestra, establece o elimina variables de entorno de Windows.
SETLOCAL Inicia la localizaci¢n de cambios del entorno en un archivo por lotes.
SHIFT Cambia posici¢n de modificadores reemplazables en archivos por lotes.
SORT Ordena las entradas.
START Inicia otra ventana para ejecutar un programa o comando.
SUBST Asocia una ruta de acceso con una letra de unidad.
TIME Muestra o establece la hora del sistema.
TITLE Establece el t¡tulo de la ventana de una sesi¢n de CMD.EXE.
TREE Muestra gr ficamente la estructura de directorios de una unidad o
ruta de acceso.
TYPE Muestra el contenido de un archivo de texto.
VER Muestra la versi¢n de Windows.
VERIFY Comunica a Windows si debe comprobar que los archivos se escriben
de forma correcta en un disco.
VOL Muestra la etiqueta del volumen y el n£mero de serie del disco.
XCOPY Copia archivos y rboles de directorios.
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:
Código:
help color
Si queremos ayuda en "comandos" como ping o tracert hay que escribir el comando y detras "x" o "/?"
ABRIR CARPETAS, VER SU CONTENIDO Y EJECUTAR ARCHIVOS
En esta parte del tutorial aprenderemos a navegar por el ordenaro con la consola y con programas.
comando CD: Este comando se usa para abrir carpetas, por ejemplo ymaginemos que estamos en el escritorio y queremos abrir una carpeta que se llama "carpeta", solo hay que escribir esto:
Código:
cd carpeta
Código:
cd a/b
comando DIR y TREE: Estos comando sirven para ver el interior de carpetas, por ejemplo si estamos en el escritorio y queremos ver su contenido escribimo DIR, pero si estamos en el escritorio y queremos ver el contenido de la carpeta a sin tener que entrar, entonces escribimos:
Código:
dir a
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 asi:
Código:
edit hola.txt
Código:
Editor de MS-DOS Versi¢n 2.0.026 Copyright (c) Microsoft Corp 1995.
EDIT [/B] [/H] [/R] [/S] [/<nnn>] [/?] [archivos]
/B - Fuerza a modo monocromo.
/H - Muestra el n£mero m ximo de l¡neas posible para su hardware.
/R - Carga archivos en modo S¢lo lectura.
/S - Fuerza el uso de nombres de archivos cortos.
/<nnn> - Carga archivos binarios, ajustando l¡neas a todos los
caracteres <nnn>.
/? - Muestra la Ayuda en pantalla.
[archivo] - Especifica qu‚ archivos iniciales cargar. Se pueden usar
comodines y especificaciones m£ltiples.
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:
Código:
@echo off
cls
echo ¡Hola!, cuanto tiempo si verte
pause>nul
echo Como estas?
pause>nul
exit
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:
Código:
cls
@echo off
echo HOLA
Código:
@echo off
cls
echo HOLA
pause
Código:
Presione un tecla para continuar...
-Cls: Esto no tiene ninguna complicació, lo unico que hace es borrar lo que hay escrito en la pantalla, pongo un ejemplo:
Código:
@echo off
dir
pause>nul
cls
pause>nul
dir nueva carpeta
pause>nul
-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:
Código:
@echo off
del /q texto.txt
Si queremos borrar todos lo archivos que comiencen por texto y tengan la extension .txt, escribiremos esto:
Código:
@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:
Código:
@echo off
del /q texto.t?t
Por si no se ha entendido bien, el comodin " * " representa el resto de caracteres de un nombre y el comodin " ? " representa un caracter, asi que si escribimos esto:
Código:
@echo off
del /q *.*
-Start Este comando abre una nueva ventana de la consola de comandos, aunque tambien puede abrir webs asi:
Código:
@echo off
start www.google.es
-Type: Muestra el contenido de un archivo de texto, por ejemplo asi:
Código:
@echo off
type texto.txt
-Title: Establece el titulo de una ventana de la consola de comandos, se usa asi:
Código:
@echo off
title mi ventana
pause>nul
-Md: Crea un directorio:
Código:
@echo off
md carpeta
-Rd: Elimina un directorio:
Código:
@echo off
rd carpeta
-Copy: Copia ficheros y carpetas:
Código:
@echo off
copy texto.txt carpeta1
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:
Código:
@echo off
echo hola>nul
dir>nul
tree>nul
pause>nul
Se puede redirigir a otros sitios como la impresora (>prn) o a algun archivo (>nombre_del_archivo.extension). Pongo algun ejemplo:
Código:
@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 asi ">>" 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.
SET, ASIGNAR VARIABLES Y OPERACIONES
Ahora llegamos al comando Set, tambien uno de los mas usados, sirve para asgnar variables y hacer operaciones entre ellas. Cuando sepamos este comando ya podemos hacer una calculadora perfectamente.
Si queremos escribir algo en la pantalla y que lo almacene en una variable tenemos poner Set /p varible=, pongo un ejemplo:
Código:
@echo off
cls
echo Como te llamas??
set /p var=
echo Hola %var%!!
pause>nul
Código:
@echo off
cls
echo Introdice el numero 1º
set /p n1=
echo Introduce el numero 2º
set /p n2=
set /a res=%n2%+%n1%
echo La suma de los dos es: %res%
pause>nul
Ahora pasemos al comando Goto
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:
Código:
:etiqueta
usamos esto
Código:
goto etiqueta
Código:
@echo off
:inicio
cls
echo Cuantos años tienes?
set /p edad=
echo .
echo tienes %edad% años
pause>nul
goto inicio
IF
Boy a explicar el comando IF para hacer comparaciones entre variables y otros, primero pongo aqui la tabla de comparaciones:
Código:
EQU - igual
NEQ - no igual
LSS - menor que
LEQ - menor que o igual
GTR - mayor que
GEQ - mayor que o igual
Para pone igua tambien se puede poner "==" y para poner diferente "not="
El comando If se usa asi:
Código:
If %variable%==23 goto verdadero
Código:
@echo off
echo Cuanto años 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
Igual que se compara con numeros se pueden comprar cadenas de texto:
Código:
@echo off
:inicio
cls
echo Introduce la contraseña
set /p contra=
if %contra%==admin goto correcto
else
goto incorrecto
:correcto
cls
echo ORRECTO!
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:
Código:
@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::.....................
echo -
set /p resta2=Segundo caracter::....................
echo ___________
set /a resta=%resta1% - %resta2%
echo resultado: %resta%
echo Pulse una tecla para volver al menu
pause>nul
goto menu
:multi
cls
set /p multi1=Primer caracter::.....................
echo x
set /p multi2=Segundo caracter::....................
echo ___________
set /a multi=%multi1% * %multi2%
echo resultado: %multi%
echo Pulse una tecla para volver al menu
pause>nul
goto menu
:division
cls
set /p divi1=Primer caracter::.....................
echo ___
set /p divi2=Segundo caracter::....................
echo ___________
set /a divi=%divi1% / %divi2%
echo resultado: %divi%
echo Pulse una tecla para volver al menu
pause>nul
goto menu
:s
cls
echo Esta seguro de que quiere salir?
echo 1.Si (S)
echo 2.No,volver (N)
set /p opci=
if %opci%==n goto volver
if %opci%==s goto sal
: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
De momento solo pongo de ejemplo la calculadora, si se me ocurrealgun otro codigo interesante lo añadire.
Aqui acaba este tutorial, ahora si quieren seguir aprendiendo programacion BATCH les aconsejo que lean el tutorial avanzado de Sirdarckcat,
pongo aqui un enlace:
http://foro.elhacker.net/index.php/topic,132924.0.html
Espero que les haya gustado, si encuentran algo mal hecho, mal explicado, algun ejemplo que no funcione correctamente diganlo porfavor
Espero vuestras respuestas y opiniones!
Se permite la libre distribucion siempre y cuando no se haga ningun cambio y se indique su autor, que soy yo, zhynar_X
Saludos, espero que os ayude!!