Programacion BAT 2

Descargar como odt, pdf o txt
Descargar como odt, pdf o txt
Está en la página 1de 8

Lenguaje batch tutorial y comandos básicos .

bat
Este es un tutorial sencillo para principiantes en el que se intenta explicar de la forma mas simple los principales comandos.
El lenguaje batch no es muy difícil pero para personas que se estén iniciando puede resultar un poco complicado así que intentare
explicarlo de la forma mas sencilla posible.
¿Qué es batch?
Un archivo batch es un archivo de texto sin formato guardado con la extensión bat y que contiene un conjunto de ordenes llamadas
comandos de DOS.
en resumen un archivo batch es un archivo de texto en el que se a escrito un conjunto de códigos que van a ser ejecutados de forma
lineal (ya lo irán entendiendo con ejemplos mas adelante) y ese archivo de texto debe ser guardado con la extensión .bat, es decir un
nombre cualquiera.bat ej: nombredelarchivo.bat
Es muy útil para automatizar tareas, por ejemplo un programa que nos abra todas las herramientas que necesitamos para trabajar en
un determinado proyecto, de esta forma cada vez que queramos trabajar solo tendremos que pulsar un botón y no hará falta abrir una
a una todas las aplicaciones necesarias, pero su utilidad no se queda en esto, todo hacker debe conocerlo, especialmente su
equivalente en linux: los scripts de bash.
La terminación bat viene del propio nombre del lenguaje (batch) que debido a que las extensiones de archivos (.bat, .exe, .txt etc) solo
pueden tener 3 letras quedo reducido a eso.
PARTE 1
Lo primero que debemos hacer es abrir un archivo de texto y guardarlo con un nombre seguido de .bat tal como expliqué
anteriormente en ese archivo vamos a poner nuestros comandos.
Empecemos quitando el eco, para eso escribimos: @echo off
1 @echo off
2 pause
3 exit
Si no sabes lo que es el eco prueba a quitar @echo off y verás lo que pasa.
Pause sirve para hacer una pausa en la secuencia (pulsa una tecla para continuar)
y exit sirve para finalizar
Bien ahora vamos a continuar con otro código: el echo y el echo. (nótese el punto)
El echo sirve para escribir algo en pantalla por ejemplo echo hola escribiría hola en la pantalla
y echo. sirve para dejar un espacio
1@echo off
2echo.
3echo Hola TodoHacker
4echo.
5echo Como estas?
6pause
7exit
Prueba a ponerlo y comprueba lo que pasa
Es muy importante que vayas entendiendo todo esto paso a paso sino se irá complicando bastante.
Ahora vamor a ver una variacion del pause: pause>NUL, sirve para hacer una pausa sin poner nada en la pantalla podéis probarlo
sustituyendo pause por pause>NUL en los códigos anteriores
Esto lo vamos a utilizar para poner nosotros el mensaje que queramos en vez del «pulsa una tecla para continuar»
y lo vamos a hacer poniendo algo seguido de pause>NUL veréis el efecto
1@echo off echo.
2echo Pulsa una tecla para ir a la siguiente parte del tutorial de todohacker.com
3pause>nul
4echo.
5echo Bienvenido a la segunda parte del tutorial echo. echo Pulsa una tecla para salir
6pause>nul
7exit
PARTE 2
El comando cls sirve para borrar la pantalla.
1@echo off
2echo.
3echo Pulsa una tecla para ir a la siguiente parte del tutorial
4pause>nul
5cls
6echo.
7echo Bienvenido a la segunda parte del tutorial de todohacker
8echo.
9echo Pulsa una tecla para salir
10pause>nul
11exit
Este es muy sencillo, ejecútalo y te darás cuenta de su utilidad.
Ahora vamos a pasar a las variables, algo que tienen casi todos los lenguajes de programación y que, como verás, te da infinitas
posibilidades.
Una variable es un nombre que designa un valor y como su nombre indica puede variar. Gracias a esto podemos guardar valores y
darles nombre.
Para poner una variable debemos escribir se nombrevariable= valor. ej: set nombre= pepito
y para referirnos a esa variable debemos escribir el nombre de la variable entre %% ejemplo: hola %nombre%
1@echo off
2set nombre= Pepito
3echo.
4echo Hola %nombre%
5echo.
6pause
7exit
Es muy fácil pero es importante que lo entiendas, por que en esto se basa todo lo que viene a continuación, si te estas preguntando
por que es realmente importante, ahora vas a verlo.
Ahora vamos a hacer que podamos poner nosotros mismos la variable, es decir que la persona que usa el programa puede asignar un
valor.para eso en vez de poner set debemos poner set/p

ej: set/p nombrevariable= valor
1@echo off
2echo.
3set/p nombre= ¿Como te llamas?
4cls
5echo.
6set/p años= ¿Cuantos años tienes?
7cls
8echo.
9echo Hola %nombre% tienes %años% años.
10echo.
11echo Pulsa una tecla para salir.
12pause>nul
13exit
Una vez entendido esto vamos a empezar a utilizar las variables por ejemplo para hacer operaciones con ellas.
Para eso utilizaremos set/a. es como el set/p pero no se muestra en pantalla y realiza operaciones, porcentajes, sumas, restas etc.
Estos son los signos que podemos utilizar:
+ para sumar
– para restar
* para multiplicar
/ para dividir

PARTE 3
En esta parte del tutorial vamos a aprender a trabajar con if, if not, else y goto.
If sirve para expresar una condición. Es decir si pasa esto entonces haz esto. Para ello vamos a utilizar la siguiente estructura: if
condición acción
ejemplo: if %variable%==4 echo bien!! esto quiere decir que si el valor de la variable es igual a cuatro entonces escribe «bien!!»
Las distintas condiciones que podemos comprobar con un if en batch son las siguientes: (operadores)
if variable==valor (para expresar si la variable es igual a valor haz esto)
if variable LSS valor (para expresar si la variable es menor a valor haz esto)
if variable GTR valor (para expresar si la variable es mayor a valor haz esto)
if variable LEQ valor (para expresar si la variable es menor o igual haz esto)
if variable GEQ valor (para expresar si la variable es mayor o igual haz esto)
if not se utiliza igual que if pero expresa todo lo contrario ej:
if not variable==valor (para expresar si la variable NO es igual a «valor»)  y lo mismo con el resto de condiciones vistas arriba.
1@echo off
2echo.
3set/p variable= ¿Cuanto son 2 + 2?
4cls
5echo.
6if %variable%==4 echo bien!!
7echo.
8pause
9exit
Aquí también se podría utilizar el goto que sirve para enviar la lectura de comandos a otro sitio del bat por ejemplo if variable==valor
goto correcto, después mas abajo pondríamos una «etiqueta» con ese nombre después de dos puntos ej: :correcto así quedaría: si
variable es igual a valor entonces ir al menú «correcto» y en el ya escribiríamos lo que queramos con un ejemplo lo vas a entender
mucho mejor.
1@echo off
2echo.
3set/p variable= ¿Cuanto son 2 + 2?
4cls
5echo.
6if %variable%==4 goto correcto
7echo.
8:correcto
9echo bien!!
10pause
11exit
En este caso no tendría mucho sentido pero cuando tenemos más variables y muchas opciones a elegir es esencial útil ya lo iréis
viendo
Este ejemplo indicaría que si la respuesta a la pregunta «¿cuanto son 2+2?» es 4 entonces escribe bien!!
pero ¿qué pasa si la respuesta no es esa? pues para eso sirve else, se utiliza así:
if variable==valor goto correcto else goto incorrecto esto significaría que si la respuesta es 4 entonces escribe bien pero si la
respuesta es cualquier otra cosa escribe mal!!!
1@echo off
2:inicio
3echo.
4set/p pregunta= ¿cuanto son 2 + 2?
5cls
6echo.
7if %pregunta%==4 goto correcto else goto incorrecto
8:incorrecto
9echo.
10echo Mal!!
11echo.
12echo Vuelve a intentarlo
13pause
14cls
15goto inicio
16:correcto
17echo.
18echo Bien!!
19echo Pulsa una tecla para salir de este ejemplo de www.todohacker.com
20pause>nul
21exit
He añadido lo de inicio por que así si es incorrecto vuelve a empezar.
Una vez que hemos llegado hasta aquí si lo habéis entendido podréis hacer cosas como esta:
1@echo off
2:inicio
3echo.
4set/p variable= ¿cuanto son 2 + 2?
5cls
6echo.
7if %variable%==4 goto correcto else goto incorrecto
8:incorrecto
9echo.
10echo Mal!!
11echo Intentalo de nuevo
12pause
13cls
14set/p variable1= ¿Cuanto son 5 - 3?
15cls
16if %variable1%==2 goto correcto else goto incorrecto1
17:incorrecto1
18echo.
19echo Mal!!
20echo Intentalo de nuevo
21pause
22cls
23set/p variable2= ¿Cuanto son 4 * 4?
24cls
25echo.
26if %variable2%==16 goto correcto else goto incorrecto2
27:incorrecto2
28echo.
29echo mal!!
30echo.
31echo Intentalo de nuevo
32pause
33cls
34goto inicio
35:correcto
36echo.
37echo Bien!!
38echo Presione una tecla para salir de este ejemplo de www.todohacker.com
39pause>nul
40exit

Te animo a que lo pruebes y te diviertas un rato modificandolo, échale imaginación, no hay limite a lo que puedas hacer 
PARTE 4
En esta parte vamos a ver algo muy sencillo, se trata del código de colores de las letras y el fondo de la consola simplemente se
expresa con una combinación de números y letras de esta forma:
Primero ponemos color, para indicar que lo que le vamos a decir es el color del la letra y el fondo, y seguidamente debemos poner dos
números sin espacio, el primero es el color del fondo y el segundo el color de letra.
Código de colores:
A = Verde claro
B = Aguamarina claro
C = Rojo claro
D = Púrpura claro
E = Amarillo claro
F = Blanco brillante
0 = Negro
1 = Azul
2 = Verde
3 = Aguamarina
4 = Rojo
5 = Púrpura
6 = Amarillo
7 = Blanco
8 = Gris
9 = Azul claro
 Sabiendo esto, si queremos que el fondo sea blanco y las letras negras ponderemos color 70 pruebalo tu mismo. Abajo hay unas
fotos explicativas.
Ahora otra cosa muy sencilla.
No se si os habéis fijado en la barra de titulo de la terminal, pone por defecto la ubicación en la que nos encontramos, normalmente
system32.
Pues esto se puede cambiar poniendo simplemente «title» y el nombre que le queramos poner.
Pondré un ejemplo conjunto para los códigos de color y titulo.
@echo off
title Prueba de color www.todohacker.com
color 70
echo.
echo Bienvenido a la prueba de color del cmd de todohacker.com
echo.
echo Pulsa una tecla para cambiaer al siguente color
pause>nul
color 4f
pause
exit
Prueba a cambiar los colores para entenderlo mejor.

Ahora vamos a ver redireccionamientos, son muy útiles ya lo verás.


Se utiliza > para escribir algo y >> para añadir algo a un documento que ya tenia algo escrito por ejemplo.
Se utilizan así: echo hola>archivo.txt esto escribiría hola en un archivo de texto situado en el directorio en el que nos encontramos, es
decir por defecto en el que tenemos guardado el archivo de bat que ejecuta esta orden. Si el dicho archivo de texto con nombre
«archivo» no existe lo crea.
1@echo off
2echo pulsa una tecla para crear el archivo
3pause>nul
4echo hola, esto es un ejemplo de todohacker.com > archivo.txt
5echo archivo creado
6pause
7exit
Si os fijáis nos crearía un documento de texto en el escritorio (en caso de que el bat este en escritorio) con el nombre de «archivo», y
escribiría dentro hola se pueden crear otro tipo de archivos, modificando la extensión, .txt, .bat etc.
Pero que pasaría si en el archivo queremos escribir mas lineas? en ese momento es cuando utilizamos el >>. si tenemos un
documento de texto que pone hola y le decimos que escriba otra cosa así: echo que tal? > archivo.txt, lo remplazaría, es decir, pasaría
a poner que tal? en la primera linea.
Pero si ponemos: echo que tal? >> archivo.txt se añadiría al hola una linea mas abajo. Pruébalo tu msimo, aquí pongo dos códigos de
ejemplo para que veas la diferencia.
@echo off
1echo hola > archivo.txt
2echo.
3echo Abre al archivo creado antes de continuar y mira lo que pone
4echo Cierra el archivo y continua
5echo.
6pause
7cls
8echo que tal? > archivo.txt
9echo.
10echo Fijate en el archivo creado, pondra que tal? "hola" se ha borrado.
11echo.
12pause
13exit

1@echo off
2echo hola > archivo.txt
3echo.
4echo Abre al archivo creado antes de continuar y mira lo que pone
5echo Cierra el archivo y continua
6echo.
7pause
8cls
9echo que tal? >> archivo.txt
10echo.
11echo Fijate en el archivo creado, "pondra que tal?" despues de hola, no ha borrado nada.
12echo.
13pause
14exit
Es posible que te hayas dado cuenta de algo, y es que esto es lo mismo que usamos para el pause>NUL. Efectivamente lo que estamos
haciendo es redireccionar el texto por defecto a un archivo llamado «NUL», en teoría windows no debería crear este archivo, pero se
que a veces lo crea, en todo caso no es un problema demasiado grave.
Espero que se haya entendido todo, la parte de las redirecciones es muy importante por que nos va a servir varias pruebas que
hagamos posteriormente en creación de virus y scripts automáticos.
PARTE 5
En la anterior parte hemos aprendido a crear archivos, en esta vamos a aprender como ejecutarlos, borrarlos, copiarlos, cambiar sus
atributos etc.
Empecemos por ejecutarlos.
Retomemos el ejemplo anterior en el que creamos un archivo de texto con dos lineas, bueno pues ahora vamos a ejecutarlo y a
borrarlo.
1@echo off
2echo hola, esto es un ejemplo de todohacker.com > archivo.txt
3echo.
4echo abre al archivo creado antes de continuar y mira lo que pone
5echo cierra el archivo y continua
6echo.
7pause
8cls
9echo que tal? >> archivo.txt
10echo.
11echo fijate en el archivo creado, "pondra que tal?" despues de hola, no ha borrado nada.
12echo.
13pause
14exit
Para ejecutar un archivo utilizaremos el comando start y para borrarlo el comando del acordaos de especificar siempre la extensión.
1@echo off
2echo hola, esto es un ejemplo de todohacker.com > archivo.txt
3pause
4echo que tal? >> archivo.txt
5echo.
6echo El archivo se acreado
7echo.
8echo Ahora vamos a ejecutarlo (abrirlo)
9pause
10start archivo.txt
11cls
12echo.
13echo bien puedes cerrar el archivo por que vamos a borrarlo
14pause
15del archivo.txt
16cls
17echo.
18echo Archivo borrado con esto se puede borrar cualquier archivo, solo hay que saber el nombre 😀
19pause
20exit
Al comando del se pueden añadir distintas letras para que funcione de distinta forma:
del/f Modo force. Borra incluso los archivos de solo lectura
del/s Borra también los subdirectorios.
del/p Pide confirmación
del/q Modo silencioso. No pide confirmación en ningún caso
Se pueden utilizar varios en el mismo del
por ejemplo: del/f/p archivo.txt
borraría el archivo aunque fuese de solo lectura y pediría confirmación
Por supuesto para el comando del también se puede especificar la ruta del archivo si este no estuviera en el mismo directorio
ej: del c:/ruta/correspondiente/archivo.txt
Ahora vamos con el comando cd que utilizaremos para cambiar el directorio general de la terminal, es decir, si el archivo bat esta en
el escritorio la terminal estará en ese directorio por defecto y para cambiarlo utilizaremos el mencionado cd.
Por ejemplo si queremos crear el archivo txt del ejemplo en mis documentos en vez de en el escritorio podriamos escribir la ruta cada
vez que nos refiramos al archivo pero es mas sencillo si cambiamos el directorio actual de la terminal para que siempre se dirija allí.
Para ello escribiremos: cd C:\Documents and Settings\Propietario\Mis documentos (los nombres de los directorios pueden cambiar
según el ordenador)
y todo lo que creemos o eliminemos sin especificar la carpeta lo hará en mis documentos
También podemos escribir:
cd..(con los puntos) e irá al directorio superior es decir, si estamos en mis documentos se trasladará a propietario, en el caso del
ejemplo
o cd \\ y se trasladara a la raíz del directorio. en este caso C:
Llegados a este punto tienes los conocimientos necesarios para continuar aprendiendo por tu cuenta a partir de experimentación y
experiencia, voy a nombrar algunos comandos más:
rd borra un directorio de raíz solo tenemos que especificar la ruta del directorio y borra todo lo que tenga dentro, carpetas, mas
archivos, etc.
format formatea una unidad por ejemplo format k: formatearía un pendrive externo o le que tengamos en esa unidad, o format c:
(ya podéis imaginaros lo que hace)
taskkill termina un proceso como por ejemplo el skype muy útil para bromas ej: taskkill Skype.exe cerraría el skype. Puedes ver los
procesos que tienes activos pulsando ctrl+shift+esc. (shift es la tecla que esta sobre el ctrl de mayusculas.)
shutdown también es muy útil para bromas y según lo que lleve detrás significa una cosa u otra:
-p Apaga el equipo local sin tiempo de espera ni advertencia.
-h Hiberna el equipo local.
-l Cierra la sesion.
-g Cierra la sesion y reinicia el equipo
-s Apaga el equipo.
-r Reinicia el equipo.
-e Documenta la razón del cierre inesperado de un equipo.
-m \\equipo Especifica el equipo de destino. (explicado mas abajo)
-t xxx Establece el período de tiempo de espera antes del cierre en xxx segundos.
-c «comentario» Comentario acerca de la razón del reinicio o apagado.
-f Fuerza el cierre de las aplicaciones sin advertir previamente a los usuarios.
-a Cancela el apagado.
(nota: Estas opciones solo están disponibles a partir de windows 7, en versiones anteriores solo tenemos -s, -r, -t, -a, -c)
Esto es básicamente lo que utilizo en el titorial de crear un minivirus pero de forma mas sencilla

un ejemplo
shutdown -s -t 60 (tiempo en segundos) -c virus intrusion
Cuando se ejecute pondrá una cuenta atrás de 1 min, pondrá el mensaje de: «virus intrusion» y se apagará
para cancelar la cuenta atrás debemos poner shutdown -a, se puede poner directamente en inicio, ejecutar (simbolo de windows + R)
y se cancelara automáticamente.
msg * es otro comando muy útil para bromas hace que salga un mensaje de windows con el texto que le pongan
Por ejemplo: msg * atención su sistema contiene software ilegal estamos enviando la información al FBI
Ahora aprenderemos a utilizar el comando copy que como su nombre indica sirve para copiar archivos.
Se utiliza de este modo copy ruta del archivo que queremos copiar «ruta del directorio donde lo queremos copiar incluyendo el nuevo
nombre del archivo.

Ejemplo: si queremos copiar un archivo que se llama cosa.txt de el directorio del escritorio a mis documentos, pondremos:
copy C:\Documents and Settings\Propietario\Escritorio\cosa.txt «C:\Documents and Settings\Propietario\Mis
documentos\cosa2.txt
y por último para cambiar los atributos de un archivo utilizaremos attrib
arttrib+ nombre del archivo o ruta, mostraría los atributos del archivo.
Los atributos son solo lectura, oculto, sistema
Para cambiarlos utilizaremos:
r => Lectura. Solo lectura con +r, normal con -r
h => oculto. Se activa con +h y desactiva con -h
s => Sistema. Se activa con +s y desactiva con -s
ej: attrib +h se pondría oculto como atributo
Aquí concluye este tutorial, estos son los comandos mas básicos que me ha parecido importante mencionar, hay que decir que he
obviado cosas que podrían considerarse importantes, como por ejemplo los bucles, pero este tutorial tenia la misión de ser una
introducción, y no me ha parecido conveniente extenderlo mas, ahora es tu misión continuar aprendiendo, lo más importante ya lo
sabes y ahora el limite es tu imaginación.
Solo me queda para concluir mencionar un modo de nombrar a los archivos en general
para ello utilizaremos el * que nombra a cualquier archivo es decir si decimos:
del archivo.* borraria todos los archivos que se llamen «archivo» sean de la extensión que sean
del *.txt borraría todos los archivos de texto se llamen como se llamen
del a*.txt borraría todos los documentos de texto que empiecen por a
del nombre.d* borraría todos los archivos que se llamen «nombre» y que su extensión empiece por d como doc o dat
También podemos utilizar ? se usa igual que * pero sustituye a una única letra

ej: del pan?l.txt boraria todos los archivos de texto que empezasen por pan siguiese una letra cualquiera y terminase en l por
ejemplo panel, panal etc.
Espero que hayan entendido todo. Cualquier duda que tengan por favor pongan un comentario y se responderá con mucho gusto.
Si quieres puedes poner en una ventana de terminal help y saldrán todos los comandos, por supuesto TODOS los comandos
mencionados aquí se puede escribir directamente en la ventana de terminal sin necesidad de crear un archivo bat.

También podría gustarte