martes, 5 de julio de 2011

Programación batch parte 2

Continuación

Seguimos con la 2da parte de programación "Batch".
Como pueden ver, éste es un tema muy largo ya que su campo es de igual manera, donde uno nunca puede ver el fin del aprendiz. En esta continuación ya todo será mas complejo.


En el tema anterior aprendimos a usar y setear las variables, ahora les daremos mejor uso. Ahora aprendamos a utilizar el "GOTO", el "IF" y el "MSG"

Código  @echo off :iniciotitle Mi nuevo batchecho.echo Que numero falta: "1234_6789"set /p num="->if %num%==5 goto :bienif not %num%==5 goto :mal  :bienclsecho.echo Muy bien. Has ingresado el numero correctamente.msg *  Bien.pausemsg * Adios %username%.  :mal  clsecho.echo Lamento decirle que has escrito el numero incorrectamente.echo Favor de intentarlo nuevamente.pausegoto :inicio

Bien, ahora explicaré el código.

Como pueden ver, empezé con ":inicio", se conoce como "Bucle", se utiliza con el comando "GOTO". Todo lo que empieza con dos puntos (:) es como un punto definido, me explico, cuando escribes ":aqui" ya establecistes un punto fijo, y luego escribes "goto :aqui" ahí le dijistes que vaya al punto que habías definido. Es como decir "Ir a :inicio" y el programa busca donde está ":inicio" para ir a ese punto.

El comando "IF" es el más utilizado y uno de los más importantes. Como ven en el código, es como decir "si esto es igual a eso ir a :bien".

El comando "MSG" no es muy importante pero si es interesante a la hora de hacer maldades XD.
Con éste comando hacemos que salga un mensaje a la persona. Le podemos añadir /time para que se cierre en un tiempo definido, ejemplo: "msg * /time:5 Hola usuario." Con esto hacemos que se cierre en 5 segundos.

Nota: El comando "MSG" no funciona en todas las PC debido a que no está activo, de ser asi, mejor no lo utilizen porque activarlo ya es otras explicaciones que no las pondré aquí. (De todos modos "MSG" no es tan importante).


Ya sabemos bregar con los "IF", "GOTO" y "MSG". Ahora vamos a lo interesante.

Voy a escribir varios codigos y sus funciones y luego trabajaremos con ellos.

del = borrar archivo.
copy = copiar archivo.
xcopy = copiar archivo con mas opciones.
move = mover archivo.
ren = renombrar archivo.
md = crear carpeta.
dir = mostrar todo los archivos y directorios en la carpeta actual.
find = buscar un texto de un archivo.
rem = agregar un comentario (no se mostrará en la ejecución).
ping = verifica si está disponible el "#-ip" o dirección "web" escrita.
start = abrir X programa o archivo.
shutdown = apagar, reiniciar o dormir la computadora. También se cancela el pagado.
> = se aplica despues de un comando para guardarlo como un documento.
>> = lo mismo que el anterior, con la diferencia que reescribe en el que estaba guardado.

Aquí tienen varios comandos con los que trabajaremos, aún hay muchos mas pero no los vamos a utilizar aquí. Para ver más opciones de los mismos, vayan al "Command Prompt" y escriban el comando y luego "/?", ejemplo: xcopy /?. Para añadirle opciones al comando se utiliza un "Slash (/)" o un Gión (-).

Si quisieras hacer una broma a uno de tus familiares o amigos, presta atención que crearemos una.


Código 
@echo off
title Para ti una broma
echo.
rem La persona ingresará su nombre.
set /p nombre=Ingrese su nombre aqui:
rem Le saldrá un mensaje que durará 5 segundos cuando la persona oprima enter.
msg * /time:5 Gracias por ingresarte.
cls
echo.
rem Disimulamos que la computadora le está hablando y a lo último menciona el nombre que la persona escribió.
echo Si lees el titulo veras que te estoy enga~ando y te tengo en mis manos.
echo.
echo Y veras que puedo tener el control de tu sistema y hara caso.
echo.
echo Presiona la tecla "Enter" %nombre%.
pause > nul
cls
rem Entramos al "folder" del usuario.
cd %userprofile%
rem Creamos un documento de texto llamado "11-22" cuyo contenido será lo siguiente.
echo Y que tal esto? Puedo escribir en tu computadora..... > 11-22.txt
rem Abrimos el documento y con "/wait" hacemos que se ponga en pausa hasta que la persona cierre el documento.
start /wait 11-22.txt
rem Una vez la persona cierre el mismo, se borrará.
del 11-22.txt
cls
rem Mostramos otro mensaje que durará 5 segundos.
msg * /time:5 Calculemos el tiempo que llevas aqui.
rem Hacemos que la misma computadora se verifique ella misma 5 veces y con ">nul" lo ocultamos y haremos como si pasaran 5 segundos ya que cada vez que se verifique es 1 segundo y despues de los 5 segundos se ejecutará el próximo comando.
ping localhost -n 5 > nul
rem Hacemos que se habra la calculadora 2 veces.
start calc
start calc
msg * /time:5 No veo que hagas algo.
ping localhost -n 5 > nul
cls
echo Bueno ya me canse, te veo en otro momento %nombre%.
echo.
pause
msg * Bye.
rem Hacemos que se habra el programa de Paint.
start mspaint
rem Con esto hacemos que se habra la ventana del "Command Prompt" 10 veces.
set n=0
:1
if %n%==10 goto :exit
start
set /a n=%n%+1
goto :1

:exit
exit


Aqui está nuestra pequeña broma. Y como pueden ver ya expliqué todo con "REM".

Añado otra explicación para dejarles saber como es eso de ">nul"...

... cuando escribes un codigo o comando y no quieres que se vea el contenido del mismo, pues al final le añades ">nul", ej: cuando escribes el comando "pause", el mismo nos presenta un mensaje diciendo: "Press any key to continue" pero si queremos esconder ese mensaje lo escribimos asi: "pause>nul" o "pause > nul" (es lo mismo). obligatoriamente tiene que se "nul" para hacerlo nulo porque si escribes otra cosa la computadora entenderá que lo quieres guardar como un texto, osea, el mismo creará un documento con el nombre que le pusistes despues de ">" que no haya sido "nul".

Seguir con la tercera parte (Más avanzada)


No hay comentarios:

Publicar un comentario