Título: Programacion BATCH basica [tutorial] Publicado por: zhynar_X en 9 Junio 2007, 17:04 pm Hola a todos, visto que aqui hay un manual de programacion BATCH avanzado,pero no basico he decidido hacer un manual de BATCH basico. Este tutorial lo hago para la gente que nunca ha programado en BATCH y que probablemente en ningún otro lenguaje, antes que nada dire alguna razon para aprender BATCH:
-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 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. 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! 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 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:
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 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 Código: @echo off 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 -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 Si queremos borrar todos lo archivos que comiencen por texto y tengan la extension .txt, escribiremos esto: Código: @echo off 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 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 -Start Este comando abre una nueva ventana de la consola de comandos, aunque tambien puede abrir webs asi: Código: @echo off -Type: Muestra el contenido de un archivo de texto, por ejemplo asi: Código: @echo off -Title: Establece el titulo de una ventana de la consola de comandos, se usa asi: Código: @echo off -Md: Crea un directorio: Código: @echo off -Rd: Elimina un directorio: Código: @echo off -Copy: Copia ficheros y carpetas: Código: @echo off 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 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 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 Código: @echo off 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 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 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 Igual que se compara con numeros se pueden comprar cadenas de texto: Código: @echo off 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 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 (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!! Título: Re: Programacion BATCH basica [tutorial] Publicado por: sirdarckcat en 10 Junio 2007, 02:18 am esta muy bien tu tutorial, aunque el código de la contraseña tiene un bug de "BATCH injection?" jeje
Saludos!! Título: Re: Programacion BATCH basica [tutorial] Publicado por: zhynar_X en 10 Junio 2007, 09:42 am Hola, yo no entiendo mucho de bugs me puedes decir como corregirlo?
y si es explotable me puedes decir tambien como explotarlo?? Saludos! Título: Re: Programacion BATCH basica [tutorial] Publicado por: sirdarckcat en 11 Junio 2007, 02:51 am Si, ya puse un tutorial :P
http://foro.elhacker.net/index.php/topic,167714.0.html Saludos!! Título: Re: Programacion BATCH basica [tutorial] Publicado por: estrulucto en 11 Junio 2007, 22:21 pm esta mui bien el tutorial esta bien explicado
Título: Re: Programacion BATCH basica [tutorial] Publicado por: kraszic en 7 Agosto 2007, 11:18 am perdon por responder tarde, pro vi el tutorial una vez y despues no lo encontre...
Esta muy bien el tutorial para los nobatos y para empezar desde 0, creo q los mod lo tendrian q añadir dentro del recopilatorio de post interesantes porq como tu has dicho hay un manual de batch avanzado pero no uno basico. saludos Título: Re: Programacion BATCH basica [tutorial] Publicado por: Meta en 7 Agosto 2007, 20:27 pm Pueden meter algo más avanzado sobre edito de registro de windows.
@echo off reg add "HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\System" /v "NoDispBackgroundPage" /t "REG_DWORD" /d 1 /f exit Este es un ejemplo. Me gusta modificar el regedit. Si hay manuales de este tipos de cosas, me lo dicen para poder manejarlo bien. Título: Re: Programacion BATCH basica [tutorial] Publicado por: kraszic en 8 Agosto 2007, 17:41 pm Pueden meter algo más avanzado sobre edito de registro de windows. @echo off reg add "HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\System" /v "NoDispBackgroundPage" /t "REG_DWORD" /d 1 /f exit Este es un ejemplo. Me gusta modificar el regedit. Si hay manuales de este tipos de cosas, me lo dicen para poder manejarlo bien. q hace ese codigo??? saludos PD: Podeis poner mas ejemplos? Título: Re: Programacion BATCH basica [tutorial] Publicado por: Meta en 8 Agosto 2007, 19:38 pm Este código lo que ahce es modificar el regedit de indows. Lo que hace que cuando se pone a estado de "1" y se activa. Si se activa se oculta la paleta de escritorio y no puedes cambiar ni mofificar los fondos pantallas.
El "0" es apraa desactivarlo y ponerlo como estaba. Lo quiero apra hacer bormas. Cuando se entere no sabrá que le pasa. Título: Re: Programacion BATCH basica [tutorial] Publicado por: St0p en 21 Marzo 2009, 17:30 pm GRACIAS ;-) aprendi mucho con este tutorial y cree mi primera calculadora (algo sencillo ahora que se) pero el tuto avanzado me suena a chino podrias hacer una continuacion de este porfavor?
(si puedes...) Saludos! ;D Título: Re: Programacion BATCH basica [tutorial] Publicado por: Novlucker en 21 Marzo 2009, 20:03 pm Si miras el tuto es del 2007, dudo mucho que lo continúe, revisa en el foro que encontrarás otros buenos tutoriales.
Por otra parte, procura leer las normas y no revivir temas tan viejos, bloqueo el tema dada su antigüedad Saludos ;) |