Título: Manual Batch desde -1 (By 2Fac3R) Publicado por: 2Fac3R en 20 Octubre 2011, 22:24 pm Hola gente hoy vengo a colgar mi pequeño manual super sencillo para los novatos en Batch y que quieran conocer mas el lenguaje. Puede que digas “¿Por qué
“otro”manual desde 0 si ya hay cientos en la red”?, pues mi respuesta es la siguiente: Dado que existen muchisimos manuales de Batch (ultimamente el de Alan++) que explican el Batch, he decidido hacerme uno 'diferente', digo eso porque no explicare ciertas cosas que otros manuales si lo hacen, bueno me canse xD, leancelo y veran porque 'Diferente'. Citar -Ya deja de hablar y ve al grano- ok ya voy.Dado mi discurso, empiezo: ¿Bien y que es Batch? Bueno, es sencillo es un lenguaje de programación de scripting ( o sea, que no necesita compilación para probarlo, si quieres una definición mejor busca en Google), este lenguaje muchos dicen que no es potente, y en parte tienen razón y en partes no, me explico, todo depende de la imaginación que tenga uno para hacer sus codes, bueno la parte verdadera es que con Batch no se puede hacer por ejemplo un Sistema Operativo ( es u ejemplo exagerado, pero sirve como ejemplo, xd) o tampoco es posible crear un Keylogger, por ejemplo, pero si se pueden hacer muchas cosas como; troyano, worm o cualquier tipo de Malware (Claro que no sera igual a uno creado en “C” por ejemplo), pero es muy utli y nos puede servir para varias cosas.¿Y como que podemos hacer en Batch? Bueno como ya he dicho se pueden hacer cientos de cosas pero depende de tu imaginación, como por ejemplo, podemos hacer desde agendas, calculadoras, virus, etc. Todo depende de tu imaginación y de lo que quieras hacer en Batch? [SIZE="3"]OTRAS COSAS:[/SIZE] Primero que nada no me hago responsable del mal uso que este manual pueda llegar a dar ideas, xd. Otra cosa es que recuerda que Batch es “simple” a que me refiero?, bueno me refiero a que no puedes hacer de batch muchas cosas que se pueden hacer en otros lenguajes de programación como; C, Python, Perl, Pascal, etc. Otra cosa este manual esta hecho para el aprendizaje por lo tanto, no voy a mostrar el "super paso a paso" de como se hagan las cosas, si no explico algo es para que te enseñes a buscar en google o se te quite la verguenza de preguntar a un colega que sepa del tema, disculpen si esto es latoso pero es necesario para el aprendizaje. Citar -Ya me estas aburriendo ve al grano- Ya ya voy, xd.Empecemos: ¿ COMO HAGO UN PROGRAMA EN BATCH? Bueno aquí vamos a necesitar el block de notas, y una mente abierta, abrimos el block de notas La estructura de Batch es la siguiente: Código: Código: @echo off comandos que nosotros ponemos y el “@” sirve para que no se muestre ese echo off, “<comandos> es aquí donde van los comandos que vamos a teclear, y “exit” es el comando para salir del archivo por lotes. Vamos a un ejemplo muy conocido escribamos: Código: Código: @echo off Citar --Que coño a pasado solo salio una ventanita negra muy rápido desaparecio, me No, no tranquilo, eso lo hice a propósito para estas viendo el pelo o que?-- explicarte otro comando que es el “pause”. Ahora da click derecho sobre “holamundo.bat” y elige “editar”, bueno nos salio la ventanita de Block de notas, bien ahora escribe el siguiente code: Código: Código: @echo off Citar -¿Que ha pasado ahora si mostro el "hola mundo"?- Como ya dije antes el "pause"pausa o detiene (xD) los comandos hasta que teclees una tecla, xD. Bien vamos muy bien, este es el ejemplo que se usa al inicio de todo lenguaje de programacion. Como ya dije ocupas una mente curiosa y te doy una ayudadita para conseguir mas informacion de un comando usamos un parametro (-que es un parametro-) (no te voy a hacerlo facil busca en Google) el cual es "/?" (sin comillas) por ejemplo abre la shell de windows (inicio-->ejecutar-->cmd-->enter) y escribe "echo /?" y da enter. Te ha salido esto?: Código: Código: Muestra mensajes o activa y desactiva el eco del comando. Citar -Ahh se me ah ocurrido una idea, voy a ver que hace los comandos "exit" y "pause" que me has enseñado- Perfecto si eres de los que piensan asi, eso te ayudara mucho en un futuro, entonces ahora teclea "exit /?" y/o "pause /?". Bueno, sigamos, espero que hayas entendido mas o menos lo que es un comando, sino ya sabes que existe Google (yo recomiendo Google pero puedes buscar en tu buscador favorito ya sea "Altavista", "Yahoo", etc) -Todo esto se me hace bien pero no me gusta la ventanita negra para mis futuros programas- Para ello tenemos el comando "Color" usa un poco de imaginacion y esto te lo dejo a ti. (¿una pista? "/?"). Quieres conocer todos los comandos (o la mayoria) que existen en MS-dos (Batch)? Pues entonces teclea en la shell "help" y mira los comandos. Te ha salido esto: Código: "Para obtener mas informaci¢n acerca de un comando especifico, escriba HELP seguido del nombre de comando Código: [code]ASSOC Muestra o modifica las asociaciones de las extensiones de archivos. Citar -¿Que, eres brujo o adivino?- No, no lo soy,xDUsa un poco de imaginacion para los comandos que no se vayan a explicar aqui. Vamos a unos ejemplos de algunos comandos, usaremos como ejemplo el comando "start" vamos: Código: Código: @echo off Citar -Que coño has hecho porque escribes "pause>nul" si me habias dicho que era solo Bueno ese es un parametro de "pause" pero no solo de pause se un poco "pause"- curioso y prueba. Citar -No M@m3$ ya no explicas nada- ok, ok el ">nul" sirve para que no se muestre el comando es como "@echo off" pero solo para cierto comando, te has fijado que al ejecutar el codigo no te aparece el "presione una tecla para continuar" pero si tienes que presionar una tecla para continuar y ha abierto el explorador por defecto que tengas ya sea el iexplorer, mozilla, chrome, etc. Bueno este es un ejemplo del comando "start" como su nombre lo indica "inicia" algo. Vamos a otro ejemplo, supongamos que queremos que nuestro programa haga que muestre "se va a abrir el internet explorer" y que lo habra, ¿Como lo hariamos?. Vamos a la practica: Hagamos un algorito (un algoritmo es una serie de procedimiento que seguira en este caso nuestro programa). ALGORITMO: Código: 1: Que no muestre los comandos (@echo off) Bien, vamos a hacer nuestro programa: (usare "#" para poner comentarios o cadenas") Código: Código: @echo off #Vemos que es la "1" de nuestro algoritmo Citar -No sirve!!!- Me lo temia, puede que no sirva por varias cosas, una de ellas seriaque el internet explorer no este en el escritorio, otra seria que el nombre del ie no es "iexplorer" sino "internetexplorer", otra logica seria que no tengas el navegador (como yo,xd) Prueba con otros programas. Ten en cuenta que no se pone ".exe" ".txt" ni ".com" son las unicas excepciones que nos da ms-dos. para otras extensiones de archivos se tendra que poner su extensión. Vamos a otras cosas, explicare los comandos mas basicos que existen "md", "rd", del,etc. "md" sirve para crear un directorio como nos dijò "help" su sintaxis es: Código: MD [unidad:]ruta vamos a crear una carpeta: Código: Código: @echo off Citar -Se me a ocurrido algo pero no se si se pueda, crear una carpeta en el disco local- Si se puede aunque no este el batch en el directorio, para ello la sintaxis nospide unidad y ruta. vamos a crear una carpeta con una subcarpeta llamada "b" en la carpeta "a"en el disco duro llamado "C:" Para ello hacemos esto: Código: Código: @echo off Citar -Pero que hago si mi disco no se llama "c:"- pues tienes 2 opciones; 1.- simplemente cambiar el nombre por el que tu tengas 2.- Usar una variable de entorno VARIABLES DE ENTORNO: Las variables de entorno nos sirve para que en vez de escribir toda la ruta solo escribamos la variable de entorno y nos sirve para lo mismo (xd, ni yo me entendi, por eso vamos a la practica para que me entiendas mejor). En este caso voy a explicar en el ejemplo de "md", suponemos que no tienes tu hd con el nombre de c:/ sino con x:/ y tu amigo tiene su hd con el nombre f:/ y quieres que tu programa de crear carpetas sirva tanto en tu pc como en la de tu amigo pepe Te encuentras con el problema de que si pones: Código: Código: @echo off en tu pc funciona, pero al mandarlo a tu amigo pepe, no le funciona porque el tiene su hd llamado f: y tu pusiste "x:\", bien para ello utilizaremos una variable de entorno la cual en este caso es: %homedrive%\, ahora vamos a ver nuestro code: Código: Código: @echo off ¿Que ha pasado? Pues es simple la variable de entorno guarda el directorio por defecto de el hd. ahora manda a tu amigo pepe y veras que le funciona Vamos a poner otro ejemplo de variable de entorno. Supongamos que quieres borrar una carpeta que hiciste en la subcarpeta de windows llamada "system32" que tiene otra subcarpeta llamada "1028" la cual se llama prueba para ello para crearla tuviste que hacer lo siguiente: Código: Código: @echo off y para borrala haces esto: Código: Código: @echo off Pues te la haz complicado muchisimo, para borrarla con las variables de entorno seria asi: Código: Código: @echo off y para borrarla: Código: Código: @echo off Espero que hayas entendido lo de las variables de entorno, te pongo las que conozco: Código: Windows= %windir% 1 | %systemroot% variables. [SIZE="4"]Empecemos[/SIZE].- Las variables se escriben entre signos de porcentajes ejemplo.- %variable%. Una variable como su nombre lo dice varia segun el dato que se le de por lo general son numeros por ejemplo al hacer una calculadora o en la mayoria de los programas porque es la forma mas facil para que no haya problemas cuando el usuario eliga. como no se explicarme -ah en serio?- vamos a la p`practica y a los ejemplos: Vamos a poner un ejemplo del archirequetereconocido "Hola %nombre" Algoritmo sintetizado: 1.- Que nos pregunte nuestro nombre 2.- Que el nombre se guarde en una variable llamada "nombre" 3.- Que nos muestre nuestro nombre 4.- Fin Vamos a codear -Pero como lo hago si no me has explicado como guardar el nombre en la variable- Bueno como ya sabes no soy bueno para explicarme asi que voy directo al ejemplo: Código: Código: @echo off nuestro nombre y al teclear nuestro nombre lo guarda en la variable "nombre" con el comando set /p y limpia la pantalla con el comando "cls", despues nos pregunta nuestro apellido y lo guarda en la variable "apellido", limpia la pantalla y nos dice ya te reconoci %nombre% (muestra lo que pusimos en "¿Cual es tu nombre?") %apellido% (muestra lo que guardamos en "Cual es tu apellido?"), y nos dice adios y se cierra el bat. Aqui termina la primera parte de este manual hecho por mi 2Fac3R. Dudas, sugerencias o criticas opinen, tengan en cuenta que estoy enseñando lo basico para que se entienda sabemos que muchas cosas que aqui estan se pueden hacer con menos lineas, aqui hable poco realmente de lo que es batch, en la siguiente parte me basare mas en la practica y no en la teoria, haremos una calculadora, un bucle, worm y quiza mas cosas. Por mientras trata de estudiar los comandos que vimos en "help". Zalu2 EN PDF: PRIMERO --> http://www.multiupload.com/HDQD1WUKVV 2DA PARTE --> http://www.multiupload.com/6MEG25RG5U NIVEL MEDIO --> http://www.multiupload.com/UFE74WZ1JW[/code] |