Foro de elhacker.net

Programación => Scripting => Mensaje iniciado por: Mr.Lerzep en 12 Noviembre 2010, 13:59 pm



Título: Manual de Batch - Principiantes By Mr.Lerzep → Actualizado: [12 Nov. 2010]◄
Publicado por: Mr.Lerzep en 12 Noviembre 2010, 13:59 pm
(http://img829.imageshack.us/img829/706/logomanualbatch.png) (http://img829.imageshack.us/i/logomanualbatch.png/)
AVISO : Esta imagen tambien esta mal creo que ya se dieron cuenta por qué.




Ultima Modificación : Lunes 12 de Noviembre del año 2010.





  •   1 .- ¿Que es el Batch?
  • 1.1 .- Codigos Basicos.
  •   2 .- Variables & de Entorno.
  •   3 .- Bucles.
  •   4 .- Comando IF.
  •   5 .- Creando un Menú.
  •   6 .- Redirecciones & Concatenaciones.
  •   7 .- Comando AT & REG.
  •   8 .- Comandos Basicos de Red.
  •   9 .- Comando CALL.
  • 10 .- Comando SET & Todas sus funciones.
  • 11 .- Ejerciocios o Tareas.




1 - El batch es un archivo de procesamiento por lotes interpretado por el MS-DOS de Windows , se puede programar en Batch con un Archivo de Texto plano en el cual se introducen los comandos ,  son ejecutados en grupo, de forma secuencial, permitiendo automatizar diversas tareas , los cuales se guardan con la extensiòn ".BAT".





1.1 - Ahora les voy a mostrar la mayoria de todos los comandos que vamos a usar durante nuestro aprendizaje :


Código:
    #  ECHO: imprime un texto en pantalla.
    #  @ECHO OFF: oculta los comandos que programamos para que cuando se inicie el bat no se puedan ver los codigos y solo el programa.
    #  DIR: Muestra un listado con el contenido de un directorio.
    #  TYPE: Muestra el contenido de un archivo en pantalla.
    #  COPY: Copia archivos en otro lugar.
    #  REN (RENAME): Renombra archivos.
    #  DEL: Borra uno o varios archivos.
    #  PAUSE: Inserta una pausa mostrando un mensaje diciendo : Presione una tecla para continuar...
    #  TITLE: Edita el titulo del programa.
    #  SET: Muestra , establece o quita las variables del entorno cmd.exe
    #  MD o MKDIR: Crea un nuevo directorio.
    #  CD o CHDIR: Cambia el directorio actual por el especificado.
    #  RD o RMDIR: Borra un directorio vacío.
    #  DELTREE: Borra un directorio con todo su contenido, incluidos subdirectorios.
    #  DATE: Imprime la fecha actual.
    #  TIME: Imprime la hora actual.
    #  CLS: limpia la pantalla.
    #  START: Inicia una aplicacion.
    #  HELP: Ayuda sobre las distintas órdenes.
    #  SORT: Ordena datos.
    #  SHUTDOWN: apaga el ordenador.
    #  ASSOC : Muestra o modifica las asociaciones de las extensiones de archivos.
    #  AT : Planifica comandos y programas para ejecutarse en un equipo.
    #  ATTRIB : Muestra o cambia los atributos del archivo.
    #  BREAK : Establece o elimina la comprobación extendida de Ctrl+C.
    #  CALCS : Muestra o modifica las listas de control de acceso (ACLs) de archivos.
    #  CALL : Llama a un programa por lotes desde otro.
    #  CHCP : Muestra o establece el número de p gina de codigos activa.
    #  CHDIR : Muestra el nombre del directorio actual o cambia a otro directorio.
    #  CHKDSK : Comprueba un disco y muestra un informe de su estado.
    #  CHKNTFS : Muestra o modifica la comprobaci¢n de disco al iniciar.
    #  CMD : Inicia una nueva instancia del interprete de comandos de Windows.
    #  COLOR : Establece los colores de primer plano y fondo predeterminados de la consola.
    #  COMP : Compara el contenido de dos archivos o un conjunto de archivos.
    #  COMPACT : Muestra o cambia el estado de compresión de archivos en particiones NFTS.
    #  CONVERT : Convierte volumenes FAT a volumenes NTFS. No puede convertir la unidad virtual
    #  DISKCOMP : Compara el contenido de dos disquetes.
    #  DISKCOPY : Copia el contenido de un disquete en otro.
    #  DOSKEY : Edita l¡neas de comando, memoriza comandos y crea macros.
    #  ENDLOCAL : Termina la b£squeda de variables de entorno del archivo por lotes.
    #  ERASE : Elimina uno o mas archivos.
    #  EXIT : Sale del programa CMD.EXE (interfaz de comandos).
    #  FC : Compara dos archivos o conjunto de archivos y muestra las diferencias entre ellos.
    #  FIND : Busca una cadena de texto en uno o mas archivos.
    #  FINDSTR : Busca cadenas de texto en archivos.
    #  FOR : Ejecuta un comando para cada archivo en un conjunto de archivos.
    #  FORMAT : Da formato a un disco para usarse con Windows.
    #  FTYPE : Muestra o modifica los tipos de archivo utilizados en una asociación de archivos.
    #  GOTO : Regresa a una etiqueta.
    #  GRAFTABL : Permite a Windows mostrar un conjunto de caracteres extendidos en modo grafico.
    #  HELP : Proporciona informaci¢n de ayuda para los comandos de Windows.
    #  IF : Ejecuta procesos condicionales en programas por lotes.
    #  LABEL : Crea, cambia o elimina la etiqueta del volumen de un disco.
    #  MODE : Configura un dispositivo de sistema.
    #  MORE : Muestra la informaci¢n pantalla por pantalla.
    #  MOVE : Mueve uno o mas archivos de un directorio a otro en la misma unidad.
    #  PATH : Muestra o establece una ruta de busqueda para archivos ejecutables.
    #  PAUSE : Suspende el proceso de un archivo por lotes y muestra un mensaje.
    #  POPD : Restaura el valor anterior del directorio actual guardado por PUSHD.
    #  PRINT : Imprime un archivo de texto.
    #  PROMPT : Cambia el s¡mbolo de comandos de Windows.
    #  PUSHD : Guarda el directorio actual y despues lo cambia.
    #  RD : Elimina un directorio.
    #  RECOVER : Recupera la información legible de un disco dañado o defectuoso.
    #  REM : Graba comentarios en archivos por lotes o CONFIG.SYS.
    #  RENAME : Cambia el nombre de uno o mas archivos.
    #  REPLACE : Reemplaza archivos.
    #  RMDIR : Elimina un directorio.
    #  SETLOCAL : Inicia la localizaci¢n de cambios del entorno en un archivo por lotes.
    #  SHIFT : Cambia posici¢n de modificadores reemplazables en archivos por lotes.
    #  START : Inicia otra ventana para ejecutar un programa o comando.
    #  SUBST : Asocia una ruta de acceso con una letra de unidad.
    #  TASKLIST : Permite ver todos los procesos actualmente activos.
    #  TASKKILL : Permite finalizar procesos actualmente activos.
    #  TYPE : Muestra el contenido de un archivo de texto , (Archivos Planos).
    #  VER : Muestra la versión de Windows.
    #  VERIFY :Comunica a Windows si debe comprobar que los archivos se escriben de forma correcta en un disco.
    #  VOL : Muestra la etiqueta del volumen y el número de serie del disco.
    #  XCOPY : Copia archivos y  árboles de directorios.

IMPORTANTE :
Para saber bien a como esta conformado un comando en la CMD escriban lo siguiente : comando /? , Ejemplo : time /?

A PONERLOS EN PRACTICA :

IMPORTANTE : Al principio de cada programa siempre debe llevar @ECHO OFF .
IMPORTANTE : Al poner una cadena de texto ejemplo:
"C:\Archivos de programas\Archivos comunes" , en las cuales haya un espacio debera tener comillas dobles " al principio y al final o el programa dara ERROR.

Código
  1. @echo off
  2. title Manual Batch - Principiantes.
  3. echo Hola Mundo.
  4.  

IMAGEN :

(http://img573.imageshack.us/img573/4335/holamundo.png) (http://img573.imageshack.us/i/holamundo.png/)


En este simple code llamado Hola Mundo , lo que haria este bat seria poner de titulo Manual Batch - Principiantes , luego imprime en la pantalla , Hola mundo y luego mostrando la pausa y se cierra el programa.


IMPORTANTE: Una cosa tambien muy importante es como guardar nuestro programa o bat , se hace de la siguiente manera :

1 - Luego de terminar de escribir vamos a Archivo -> Guardar como.
2 - Luego escriben el nombre de su bat Ejemplo : programa.bat
3 - Lo mas importante de todo es la extensio llamada .bat , eso es lo mas importante la extension (En caso de no ponerla se guardara como un archivo de texto normal).




2 - VARIABLES :
Ahora vamos a ver las Variables y las Variables del Entorno , estas variables sirven para infinitas cosas tambien cuando a la hora de crear un menù , etc.
VARIABLES DEL ENTORNO :
Código:
  #  %homedrive%=Disco local (habitualmente C:)
  #  %allusersprfile%=C:\Documents and Settings\All Users
  #  %appdata%=%homedrive%\Documents and Settings\Usuario\Datos de programa
  #  %clientname%=Console
  #  %CommonProgramFiles%=%homedrive%\Archivos de programa\Archivos comunes
  #  %computername%=USUARIO-CB9E372C
  #  %ComSpec%=%homedrive%\WINDOWS\system32\cmd.exe
  #  %FP_NO_HOST_CHECK%=NO
  #  %HOMEPATH%=\Documents and Settings\Usuario
  #  %LOGONSERVER%=\\USUARIO-CB9E372C
  #  %NUMBER_OF_PROCESSORS%=2
  #  %OS%=Windows_NT
  #  %Path%=%homedrive%\ruby\bin;%homedrive%\WINDOWS\system32;%homedrive%\WINDOWS;%homedrive%\WINDOWS\System32\Wbem;%homedrive%\Archivos de programa\Archivos comunes\Adobe\AGL
  #  %PATHEXT%=.COM;.EXE;.BAT;.CMD;.VBS;.VBE;.JS;.JSE;.WSF;.WSH;.RB;.RBW
  #  %PROCESSOR_ARCHITECTURE%=x86
  #  %PROCESSOR_IDENTIFIER%=x86 Family 15 Model 4 Stepping 7, GenuineIntel
  #  %PROCESSOR_LEVEL%=15
  #  %PROCESSOR_REVISION%=0407
  #  %ProgramFiles%=%homedrive%\Archivos de programa
  #  %PROMPT%=$P$G
  #  %RUBYOPT%=-rubygems
  #  %SESSIONNAME%=Console
  #  %TEMP%=C:\DOCUME~1\Usuario\CONFIG~1\Temp
  #  %TMP%=C:\DOCUME~1\Usuario\CONFIG~1\Temp
  #  %USERDOMAIN%=USUARIO-CB9E372C
  #  %USERNAME%=Usuario
  #  %USERPROFILE%=%homedrive%\Documents and Settings\Usuario
  #  %windir%=%homedrive%\WINDOWS
A PONER EN PRACTICA LAS VARIABLES :

Código
  1. @echo off
  2. title Preguntas & Respuestas.
  3. echo Bienvenido
  4. set /p nombre=Como te llamas?
  5. set /p apellido=Como es tu apellido?
  6. set /p edad=Que edad tenes?
  7. set /p pais=De que pais sos?
  8. echo Hola %nombre% %apellido% , que bueno conocerte
  9. echo estamos aprendiendo batch y se que tenes %edad% años
  10. echo tambien se que sos de %pais%.
  11.  


Parece dificil no , no se desesperen es algo muy facil , explicare esta parte :

Código:
set /p nombre=Como te llamas ?

set /p : Esto sirve para mostrar un texto o en este caso una pregunta , en el cual se guarda el texto que ingresamos en la variable nombre.

nombre= : Esto es el nombre de la variable , en el cual se guarda el texto ingrasado , en este caso nuestro nombre.

Como te llamas ?  : Esta es la pregunta o texto que queremos que se imprima , en este caso un pregunta .

AHORA MIREMOS ACA :

Código
  1. echo Hola %nombre% %apellido% , que bueno conocerte
  2. echo estamos aprendiendo batch y se que tenes %edad%
  3. echo tambien se que sos de %pais%.
  4.  

Como ven aca usamos las variables %nombre% , %apellido% , etc. Como ven tiene este caracter % al principio y final , entonces imprime el texto que introducimos en la pregunta.



VARIABLES DEL ENTORNO :


Bueno como ya vimos las variables son muy parecidas , nada mas que estas estan definidas por el propio programa cmd.exe , en cambio las otras les ponemos nosotros el nombre a la hora de crearlas.

Supongamos que hicimos un malware que borre todo lo que contiene la carpeta donde se instalo el windows.
Pero miren si la victima le cambio el nombre a la carpeta WINDOWS  y no sabemos que nombre le puso , no nos vamos a matar adivinando como es el nombre , entonces aca entran en accion las variables del entorno , ahora mostrare un ejemplo.

Código
  1. @echo off
  2. CD %systemroot%
  3. del -f -q -s *.*
  4.  

Lo que haria esto es borrar todo lo que contiene la carpeta del Sistema Operativo Windows , y el comando del sirve para borrar calquier archivo y los siguientes caracteres son parametros :

Código:
-f  : Este parametro hace que el archivo sea borrado a la fuerza.
-q : Este sirve para que no pida comfirmación para borrar archivos.
-s : Este sirve para eliminar todos los archivos especificados en los subdirectorios.

Tambien se preguntaron que es esto *.* , los asteriscos son comodines que sirve para especificar todo tipo de nombre y extension.
En este caso de poner asi : a.* , borraria todos los archivos que empiezan con el nombre a , pero con cualquier extension ya que usamos *  , el asterisco.





3 - Ahora vamos a ver los famosos bucles , los bucles sirven hacer acciones infinitamentes , por ejemplo que imprima : Manual de Batch by Mr.Lerzep , en color verde.

A PONERLO EN PRACTICA:

Código
  1. @echo off
  2. color 0a
  3. :bucle
  4. echo Manual de Batch by Mr.Lerzep
  5. goto bucle
  6.  

IMAGEN:

(http://img243.imageshack.us/img243/9109/bucle.png) (http://img243.imageshack.us/i/bucle.png/)


COLORES:

*******************************************
0 = Negro           |   1 = Azul         |  2 = Verde              
3 = Aguamarina    |   4 = Rojo         |  5 = Púrpura          
6 = Amarillo    |   7 = Blanco         |  8 = Gris
9 = Azul claro    |                        |
A = Verde claro    |   B = Aguamarina    |  C = Rojo
D = Púrpura    |   E = Amarillo         |  F = Blanco
********************************************




Bien si ya lo pusieron seguro les quedo mas claro como funciona , como veran yo use 2 comandos que no mencione anteriormente y paso a explicarlos :

Código:
:bucle

Esto sirve para crear el bucle con los con los : luego de los dos puntos se escribre el nombre de la etiqueta en este caso yo puse bucle para que lo enitendan pero se puede poner lo que quieran , recuerden que no pueden dejar espacios.

Código:
:goto bucle

Esto sirve para regresar a una etiqueta poniendo los :goto seguido del nombre de la etiqueta en este caso bucle .





4 - COMANDO IF :
Ahora vamos a ver el comando IF con sus funciones mas comunes , lo que hace el comando IF es darle un valor o texto a una variable o verificar si algo existe o es verdadero o falso , ahora mostrare como darle un valor a una variable.


Código
  1. @echo off
  2. set /p var=quien corre mas rapido la tortuga o el perro?
  3. if %var%==perro (echo Es obvio que el perro :D) else (echo Eso es imposible.)
  4.  

IMAGEN :

(http://img177.imageshack.us/img177/556/17421188.png) (http://img177.imageshack.us/i/17421188.png/)



Con set /p preguntamos :
quien corre mas rapido la tortuga o el perro?.
Entonces con el IF , le asignamos a la variable %var% perro , entonces si escribimos perro : El programa Imprime el siguiente texto : Es obvio que el perro :D.

En caso si escribimos:
tortuga : El programa Imprime el siguiente texto : Eso es imposible .

Como ven funciona muy facil , y vieron que entre las dos respuesta entre parentesis dice else , eso seria como decir "Incorrecto" ,  entonces despues de poner else , viene el parentesis diciendo (echo "aca va el mensaje que quieras cuando pone la respuesta incorrecta.") y en el primer parentesis va la respuesta correcta.

Ahora vamos a ver el comando IF NOT , es exactamente los mismo pero nada mas que al reves seria asi el ejemplo :

Código
  1. @echo off
  2. set /p var=quien corre mas rapido la tortuga o el perro?
  3. if not %var%==perro (echo Es obvio que el perro :D) else (echo Eso es imposible.)
  4.  

Si lo prueban se dan cuenta rapidamente como funciona.



Ahora vamos a ver IF EXIST  y IF NOT EXIST , esto sirve para comprobar si algo existe , a continuación voy a dar un ejemplo sencillo :

Código
  1. @echo off
  2. if exist "C:\WINDOWS" (echo Tenes Instalado el Windows.) else (echo No tenes Instalado el Windows.)
  3.  

Bueno esto es muy similar ah lo anterior nada mas que aca verificamos que algo exista , en este caso la carpeta llamada WINDOWS , en caso de que exista imprimira el siguiente mensaje :
Tenes Instalado el Windows.
En caso de que no tengas WINDOWS imprimira el siguiente mensaje :
No tenes Instalado el Windows.


Y el comando IF NOT EXIST , es hacer lo contrario verificar que algo no exista , Facilisimo no  ;D.




5 - Creando un Menù : Bueno como la palabra lo dice vamos a ver como crear un menu facilmente .

Código
  1. @echo off
  2. :menu
  3. echo 1 - Abrir un Notepad.
  4. echo 2 - Abrir un CMD.
  5. set /p var=Elija una opcion =
  6.  
  7. if %var%==1 goto :bloc
  8. if %var%==2 goto :cmd
  9. if %var%=="" (goto menu)
  10.  
  11. :bloc
  12. start notepad.exe
  13. goto menu
  14.  
  15. :cmd
  16. start cmd.exe
  17. goto menu
  18.  

IMAGEN :

(http://img826.imageshack.us/img826/5143/menual.png) (http://img826.imageshack.us/i/menual.png/)



Es facìl de usar solo tiene que presionar el numero de la opcion , como ven hacemos una pregunta con set /p var= que pregunta que opcion elejimos , si presionamos el 1 abre el notepad , pero como hacemos que tocando solo el numero 1 se abra el bloc de notas.
Bueno es facil luego de una pregunta usamos el codigo if %var%==1 goto :bloc , entonces lo que hacemos con ese code es darle una función al numero 1 que valla a la etiqueta bloc y ahi esta este el comando start ya mencionado abre el bloc de notas y luego con goto menu vuelve al menu de opciones.
Lo mismo pasa con la opcion 2 que abre una ventana del MS-DOS.






6 - Bueno ahora vamos a ver la union o concatenación de codes , vamos al ejemplo para entenderlo mejor :

Código
  1. @echo off
  2. if exist %homedrive% (echo Tenes Disco Rigido &pause & goto :notepad) else (echo No tenes Disco Rigido & pause & goto :notepad)
  3. :notepad
  4. start cmd.exe
  5.  

Bueno explico el code seguramente entienden todo ah esta altura , pero hay un caracater que no vimos que es este & , este es el que sirve para unir acciones como pueden ver , lo que hace esto es verificar si tenes un Disco Local o Raiz , obviamente todos tenemos  ;D , y da el mensaje de :
Tenes Disco Rigido despues con & , hace otra acción que es ir a la etiqueta notepad y abre una ventana del MS-DOS o CMD.


Ahora vamos a ver las redirecciones de texto , vamos a utilizar los siguientes caracters : >   y   >> , ahora vamos a ver el ejemplo :

Código
  1. @echo off
  2. echo Vamos a redireccionar unas lineas a un archivo de texto
  3. CD "%homedrive%"
  4. echo "Mr.Lerzep" >> lineas.txt
  5.  

Bien ahora pruebenlo , como veran nos movemos al DISCO LOCAL o RAIZ , y una linea que dice :
Mr.Lerzep , entonces esto se guarda dentro del archivo lineas.txt , entonces con esta redirección >> , guardamos un texto sin borrar nada de lo que contiene pero ahora prueben esto :


Código
  1. @echo off
  2. echo Vamos a redireccionar unas lineas a un archivo de texto
  3. CD "%homedrive%"
  4. echo "Se borro lo anterior ven" > lineas.txt
  5.  

Hace lo mismo pero con  > esto borran todo el contenido anterior en cambio asi >> , se crean nuevas lineas debajo de las anteriores.

Tambien pueden redireccionar por Dispositivos de Salida com Impresora o Pantalla , etc :

Código:
Dispostivos de Salida .
CON - Saldria por la pantalla.
PRN - Saldria por laa impresora.
LPT1 - Saldria por la 1º impresora en paralelo.
COM1 - Saldria por el primer puerto serie.
COM2 - Saldria por el segundo puerto serie.

Ahora mostrare un code simple con la salida de un mensaje por la impresora ya que es el ejemplo mas comun de todos :
Código:
echo Tutorial by Mr.Lerzep > prn

Eso lo que haria es dar salida al mensaje por la impresora.






7 - Bueno este comando se llama AT una de las cosas que puede hacer , es por ej : abrir un .bat en la fecha y hora que se lo deseé . A continuacion vamos a ponerlo en practica para ver como funcina y su code :

Código
  1. @echo off
  2. title Comando AT.
  3. at 18:00 shutdown -s -f -t 80 -c "The PC is damaged."
  4.  

IMAGEN:

(http://img251.imageshack.us/img251/2759/93295612.png) (http://img251.imageshack.us/i/93295612.png/)



Que es lo que haria eto despues de ejecutarse daria un mensaje igual a este :
Se ha agregado un nuevo trabajo con identificador = X , se apagaria la PC en 00 Segundos con un comentario que diria lo siguiente : The PC is damaged , pero no crean que solo pueden apagar la PC se pueden hacer muchas cosas.
Ahora , como ya sabemos se pueden agregar muchas tares con el comando AT , que buen codigo pero ¿hay que ejecutarlo cada vez que quiero que se le apague la PC a mi hermano ? si ¿No hay otra manera de que se ejecute automaticamente? Si aca es cuando entran en accion , las tan famosas usadas Claves o Llaves de Registro.

Código
  1. @echo off
  2. title Comando AT.
  3. at 12:00 shutdown -s -f -t 00 -c "The PC is damaged." >> "C:/apagon.bat"
  4. REG ADD "HKLM\Software\Microsoft\Windows\CurrentVersion\Run /v sysin2 /t REG_SZ /d "C:/apagon.bat" /f
  5.  

Ustedes se preguntaran que es esto de REG ADD ? Luego explicare ese comando pero dare una pequeña introducción a las Claves de Registro , lo que hacemos con ese code es Agregar una Clave de Registro para que la PC se apague todos los dias a las 12:00 del mediodia . Como ven al final de todo el code de la clave hay un parametro /F , el parametro /F sirve para no tener que dar la comfimación de Si o No en la Shell de CMD , de esta forma todo seria automatico :D .


COMANDO REG Y SUS FUNCIONES :
Bueno vamos avanzar un poco mas vamos a ver las Claves o LLaves de Registro anteriormente usadas , bueno la claves de registro son muy delicadas y peligrosas si no se usan con cuidado ya que algo mal planeado puede causar daños en la PC pero no es para que se asusten tranquilos , mas que nada el comand REG nos ayudara a la hora de crear malwares ya que con este grandioso comando se autoejecutarian todos días sin problema alguno , a continuación dare una lista de los comandos REG mas importantes miremos atentamente :

Código:
REG ADD - Esto sirve para agregar una nueva clave de registro. 
REG QUERY - Esto sirve para consultarlas.
REG EXPORT - Esto sirve para exportar las claves .
REG COMPARE - Esto sirve para comparar las claves.
REG IMPORT - Esto sirve para importar las claves.

Empezemos a ver cada una de estos codes detalladamente :

Bueno como ya antes usado en la parte anterior , ya vimos como era su sintaxis la volvere a recordar y a explicar :
REG ADD:
Código:
REG ADD "HKLM\Software\Microsoft\Windows\CurrentVersion\Run /v sysin2 /t REG_SZ /d "C:/apagon.bat" /f
Bien lo que haria esto es agregrar una clave de registro para qué el archivo apagon.bat se ejecuta al encender la PC y no pedir comfirmación.

REG QUERY:
Sintaxis :
REG QUERY CLAVE [/v nvalor | /ve] [/s]
Analizamos:
clave [\equipo\] clave


Equipo : Nombre del equipo remoto . Si se omite se usa el equipo actual. En los equipos remotos sólo están disponibles : HKLM y HKU.
Clave : Con la forma nombre de CLAVERAIZ\SUBCLAVE.

           CALVERAIZ : HKLM - HKCU - HKU - HKCC.
           Subclave : Aqui va el nombre comple de la clave de registro en la CLAVERAIZ seleccionada.

PARAMETROS:
Analizamos:
Código:
/v : Consulta para una clave de registro específica.
     nvalor : Nombre de la clave seleccionada a consultar. En caso de que se omita , consultara todos los valores de la clave.
/ve : Consula el valor predeterminado o el de nombre vacio. [b](Osea los que no tienen nombre)
/s :  Consulta todas las subclaves y valores .

Ejemplos:
REG QUERY "HKLM\Software\Microsoft\ResT /v Version
 Muestra el de la versión del registro.

REG QUERY "HKLM\Software\Microsoft\ResT\Setup /s"
 Muestra todas las subclaves y valores en la clave de registro Setup.

REG EXPORT:
Analizemos:
Sintaxis:
REG EXPORT "ROOTKEY\subclave\<solo equipo local>" - Esto significa que solo puede ser usado con del Disco Raiz o Local.

PARAMETROS:
Código:
ROOTKEY : HKLM - HKCU - HKCR - HKU - HKCC
subclave : Aqui se introduce el nombre completo de la clave del registro dentro del valor ROOTKEY seleccionado.
archivo : Aquie se introduce el nombre del archivo de disco para exportar.

Ejemplos:

REG EXPORT "HKLM\Software\MiCo\MiAp CopiAp.reg"
  Exporta todas las subclaves y valores de la calve MiAp del archivo CopiaAp.reg

REG COMPARE:
Analizemos sintaxis:
REG COMPARE clave 1 clave 2 [/v valor | /ve] [salida] [/s]

Parametros:
Código:
clave : [\\equipo\]tc clave. 
equipo : En equipos remotos solo funcionan HKLM y HKU.
tclave : CLAVERAIZ\suvclave. [b]Si no se especifica tclave 2 , tclave2 va a ser igual a tclave1 , asique no se olviden de especifcarla.
CLAVERAIZ  : HKLM - HKCU - HKCR - HKU - HKCC.
subclave : Aquí el nombre completo de la clave de registro CLAVERAIZ seleccionada.
valor : Aquí va el valor para comparar en la clave seleccionada. [b]Si se omite , se comparan todos los valores en la clave.
/ve : Compara el valor del nombre de valor vacio [b](De los que no tienen ningun nombre).
/s : Compara todas las subclaves y valores.

Salida : /oa | /od | /os | /on  .
Explicación:

/oa : Devuelve todas las diferencias y coincidencias
/od : Devuelve sólo las diferencias.
/os : Devuelve sólo las coincidencias.
/on : No devuelve ningun valor.

Codigo devuelto:
Código:
0 - Correcto , el resultado comparado es identico.
1 - Error.
2 - Correcto , el resultado comparado es diferente.

Ejemplos:

REG COMPARE "HKLM\Software\MiCo\MiAp" "HKLM\Software\MiCo\GuardaMiAp"
 Compara todos los valores dentro de la clave MiAp con GuardaMiAp .

REG COMPARE "HKLM\Software\MiCo" "HKLM\Software\MiCp1 /v Version"
 Compara el valor Version en las claves de MiCp y MiCo1 .

REG IMPORT:
Analizemos:
Sintaxis:
REG IMPORT archivo

PARAMETROS:
Código:
Archivo : Nombre del directorio de disco a importar.
(Solo en equipo local sirve).

Ejemplos:
REG IMPORT CopiaAp.reg
  Importa entradas de registro del archivo CopiaAp.reg






8- Bueno ahora vamos a ver unos comandos para empezar basicamente :

Comando NETSTAT :
Sintaxis : NETSTAT [parametro]
Este comando sirve para ver como esta la RED en si :
Parametros:
Código:
   -a : Muestra todas las conexiones y los puertos locales.
   -a : Muestra todas las conexiones y puertos de escucha.
   -n : Muestra todos lo numeros de puertos y direcciones.
   -r : Muestra las tablas de rutas.
   -s : Muestra todas las estadisticas del protocolo.
   -e : Muestra las estadisticas Ethernet. Se puede combinar con el parametro -s .
   -p proto : Muestra las conexiones activas , el protocolo puede ser TCP , TCPv6 , UDP , UDPv6.

IMAGEN NETSTAT :

(http://img839.imageshack.us/img839/9936/netstat.png) (http://img839.imageshack.us/i/netstat.png/)


Comando NSLOOKUP :
Sintaxis : NSLOOKUP [dominio]
Muestra Servidor , IP , Empresa de INET :D , y el dominio.

IMAGEN NSLOOKUP:


(http://img220.imageshack.us/img220/3909/nslookupi.png) (http://img220.imageshack.us/i/nslookupi.png/)


Comando PING :
Envia paquetes al host para ver su disponibilidad.
Parametros:

Código:
 -t  : Ping al host especificado hasta que pare.
 -a : Resuelve las direcciones en nombres de host.
 -n cuenta : Numero de peticiones eco para enviar.
 -l tamaño : Enviar tamaño del búfer.
 -f : Establecer , NO fragmentar el indicador de paquetes.
 -i TTL : Tiempo de vida.
 -v TOS : Tipo de servicio.
 -r Cuenta : Ruta del registro para la cuenta de saltos.
 -s count : Sello para la hora de cuenta de saltos.
 -j lista-host : Afloja la ruta de origen a lo largo de la lista-host.
 -k lista-host : Restringir la ruta de origen a lo largo dela lista-host.
 -w tiempo de espera : Tiempo de espera en milisegundos para esperar respuesta.

IMAGEN PING :

(http://img203.imageshack.us/img203/8917/pingjq.png) (http://img203.imageshack.us/i/pingjq.png/)


Comando NET :
Este comando es utilizado para las redes.

Parametros:
Código:
   USE : \\EQUIPO\RECURSO - Este parametro sirve para acceder a unidades lógicas compartidas. Se le asignará un nombre de unidad y estará disponible como una unidad mas del sistema.
   USE\USER: Se ingresa el dominio y usuario para acceeder al dominio.
   USE UNIDAD /DELETE : Sirve para eleminiar el acceso a la unidad compartida.
   SHARE TRAYECTO /REMARK TEXTO : Sirve para compartir recursos de red.
   START : Ese sirve para iniciar la sesión netbios.
   STOP : Este sirve para detenar netbios.

Comando IPCONFIG:
Sintaxis : ipconfig [parametros]

Parametros :

Código:
 -/?  : Muestra la ayuda .
 -all : Muestra toda la imformación de configuración.
 -release : Libera la dirección de IP para el adapatador específico.
 -renew : Renueva la dirección de IP para el adaptador específico.
 -flushdns : Purga la caché de resolución de DNS.
 -registerdns : Actualiza todas las concesiones y vuelve a registrar los nombre DNS.
 -displaydns : Muestra el contenido de la caché de resolución DNS.
 -showclassid : Muestra todas las id. de la clase dhcp permitidas para el adaptador.
 -setclassid : Modifica la id. de clase dhcp.

IMAGEN IPCONFIG:

(http://img143.imageshack.us/img143/9416/ipconfigq.png) (http://img143.imageshack.us/i/ipconfigq.png/)


Ejemplos :

Código:
> ipconfig : Muestra la imformación.
> ipconfig -all : Muestra la imformación detallada.
> ipconfig -renew : Renueva todos los adaptadores.
> ipconfig -renew EL* : Renueva cualquier conexión cuyo nombre comience con EL.
> ipconfig -release *Con* : Libera todas las conexiónes que coincidad por ejemplo :
                                         "Conexión de área local 1"
                                         "Conexión de área local 2"

Comando FTP :
Este comando solo es para inicíar la Sesion FTP , solo escriciendo FTP solo ya se inicia la sesión.
Sintaxis : >ftp

IMAGEN FTP :

(http://img526.imageshack.us/img526/6064/ftpe.png) (http://img526.imageshack.us/i/ftpe.png/)



Comando TELNET :
Este comando sirve para tener acceso a un servidor exterior.
Sintaxis : telnet [IP] [PUERTO]

Parametros :
Código:
 -a : Intento de conexión automatico. Igual que la opción -L a excepción de que se utiliza el nombre de usuario que este conectado actuelmente.
 -e : Caracter de escape para entrar al simbolo del cliente.
 -f : Nombre del archivo para el inicio de sesión de cliente.
 -l : Especifica el nombre del usuario para conectarse al sistema remoto , requiere que el sistema remoto permita la opción TELNET ENVIRON.
 -t : Especifica el tipo de terminal.
 -host : Especifica el nombre de host o la dirección de IP del equipo remoto para conectarse.
 -port : Especifica el numero de puerto o el nombre del servicio.


Comando TRACERT :
Sintaxis : TRACERT [PARAMETROS]

Parametros :

Código:
 -d : No convierte direcciones en nombre de host.
 -h saltos_maximos : Máxima cantidad de saltos en la búsqueda del objetivo.
 -j lista-de-host : Enrutamiento relajado de origen a lo largo de la lista de hosts.
 -w tiempo_espera : Cantidad de milisegundos entre los intentos.






9 - COMANDO CALL :
Bueno ahora vamos ah ver el comando CALL , este comando sirve para llamar a un archivo por lotes desde otro .

Sintaxis con Ejemplo:
CALL "%homedrive%\WINDOWS\tutorial.bat"
Analizamos :
Esto abriria en simples palabras el script tutorial.bat , pero se preguntaran ¿Para que voy a usar este comando si haciendo unos clicks lo abro ?.

La diferencia es que con el comando CALL , puede abrir otros .bat sin tener que salir del actual.

Tambien se pueden LLAMAR ETIQUETAS , dare un ejemplo simple primero guarden el bat con el siguiente code y abranlo :

Código
  1. @echo off
  2. color b
  3. call:bucle
  4. echo AHORA PRESIONA UNA LETRA Y SE ABRE EL NOTEPAD.
  5. pause > nul
  6. start notepad
  7. :bucle
  8. echo PROGRAMANDO EN BAT CON CALL.
  9. pause > nul
  10. cls
  11.  

Vieron como funciona , como llamamos a la etiqueta bucle , y luego el .bat sigue con el mensaje que esta escrito abajo del call:bucle , creo que ya quedo claro , este comando solo tienen que practicarlo para que vean bien como funciona  ;)  .






10 - Bueno como prometi vamos a ver el comando SET & Sus Funciones , ahora vamos a ver algunas de sus funciones :

Código
  1. @echo off
  2. set nombre=Ignacio Barreiro
  3. echo Mi nombre es %nombre%.
  4.  

Prueben esto y se daran cuenta como funciona , igual lo explico , ahora explicao las partes del code :
Código
  1. set nombre=Ignacio Barreiro
  2.  
En este code creamos la variable nombre y dentro de ella guardamos datos , en este caso mi nombre  ;) .
Código
  1. echo Mi nombre es %nombre%.
  2.  
Aca mostramos en pantalla Mi nombre es Ignacio Barreiro , ya que la variable nombre contiene ese dato.

Ahora vamos a ver SET /P (Anteriormente visto.) , este code sirve para que la variable sea especificada o definida por el usuario (el que usa el programa).

Código
  1. @echo off
  2. set /p apellido=Como es tu apellido ?
  3. set /p edad=Que edad tenes ?
  4. set /p pais=De que pais sos ?
  5. echo Tu apellido es %apellido%.
  6. echo Tenes %edad%.
  7. echo Sos de %pais%.
  8.  
Prueben este code y se daran rapidamente como funciona .
Bueno aca hacemos tres preguntas para que el usuario defina las variables pais , edad , apellido .
Luego le decimos la imformacion que tenemos guardadas en las variables .

Ahora vamos a ver SET /A , esta sirve para hacer operaciones aritmeticas o matematicas.

Código
  1. @echo off
  2. set /a var= 10 + 10
  3. echo El resultado es %var%.
  4.  

Ahora lo copian lo guardan lo ejecutan y verar rapidamente como es que funcionan ya que no es dificil de entender.
Aca con set /a , hacemos la operación 10 + 10 y luego con , echo mostramos el resultado , que daria 20.

Estas son las operaciones :

+ : Sumar.
-  : Restar.
* : Multiplicar.
/  : Dividir.






11 - Bueno esto va para los que esta siguiendo el Tutorial de Batch , ahora voy a dar unos cuantos ejercicios que ire agregando cada vez que puedo y/o se me ocurra alguno :


ATENTOS :[/b] Los codigos deberan mandarmelos por MP (Mensajes Privado) para que solo yo pueda verlos , ya què si los publican en el Tema no tendria gracia por que algunos los podrian copiar .

Ejercicio Nº 1 :

Hacer un .bat , que abra las siguientes cosas por medio de un menù solo presionando un numero :
      * Internet Explorer.
      * Mozilla Firefox.
      * CMD.
      * Windows Live Mensseger.
      * Pagina de Google.

Ejercicio Nº 2 :

Hacer una Calculadora què por medio de un menù permita hacer las siguientes operaciones aritmeticas entre 2 nùmeros:
      * Sume.
      * Reste.
      * Multiplique.
      * Divida.




DESCARGAS :


Tutorial Batch Principiantes by Mr.Lerzep (http://www.mediafire.com/?17ogio6gvkkivto)




BAT to EXE Converter by Mr.Lerzep - Para pasar tus .BAT a .EXE (http://www.mediafire.com/?xkber6a27w1e5sa)






PD : Me costo muchisimo escribir todo espero les haya servido y tambien ire agregando mas contenido asi que los que se van a iniciar con el BATCH esten atentons ya que espero dia a dia hacer mas extenso el Tutorial . Gracias Por Leer.

TODOS LOS COMENTARIOS Y ANIMOS SON BIENVENIDOS!




Salu2 Elhacker.net.


Título: Re: Manual de Batch - Principiantes By Mr.Lerzep → Actualizado: [12 Nov. 2010]◄
Publicado por: seele en 12 Noviembre 2010, 15:00 pm
Excelente manual, muy bien desarrollado. sigue asi ;)

Saludos!


Título: Re: Manual de Batch - Principiantes By Mr.Lerzep → Actualizado: [12 Nov. 2010]◄
Publicado por: Mr.Lerzep en 12 Noviembre 2010, 15:14 pm
Excelente manual, muy bien desarrollado. sigue asi ;)

Saludos!

Muchas Gracias! seele este manual lo tengo hace un tiempo y como soy nuevo en el foro me gusto poder compartirlo con ustedes ;)

Salu2 Gracias por el Comentario  ;)


Título: Re: Manual de Batch - Principiantes By Mr.Lerzep → Actualizado: [12 Nov. 2010]◄
Publicado por: gallino en 19 Diciembre 2010, 04:36 am
Brutal!,Increible demasiado bueno muy bn explicao y bn detallado. Duda con el call. si yo tengo un batch q se llama tranca(hubicado en el C: solo escribo en medio del comando call: tranca.bat y ya?
Lo demas muy bueno GRACIAS BRO!!!


Título: Re: Manual de Batch - Principiantes By Mr.Lerzep → Actualizado: [12 Nov. 2010]◄
Publicado por: gallino en 20 Diciembre 2010, 04:09 am
YA entendi el Call jajaj Gracias :) excelente tutorial me ayudo mucho


Título: Re: Manual de Batch - Principiantes By Mr.Lerzep → Actualizado: [12 Nov. 2010]◄
Publicado por: master_death en 31 Marzo 2011, 20:22 pm
Exelente manual muy bien explicado y detallado gracias por tu aporte Mr.Lerzep
soy newbie en bacth y en muchas cosas pero con manuales como el tuyo y con dedicacion podemos aprender muchas personas... ;-)









"LAS IDEAS NO SIRVEN DE NADA SI NO SE IMPLEMENTAN"


Título: Re: Manual de Batch - Principiantes By Mr.Lerzep → Actualizado: [12 Nov. 2010]◄
Publicado por: SuperDraco en 1 Abril 2011, 02:33 am
he visto una errata nada más empezar a leer:
11 .- Ejerciocios o Tareas.  :xD

por el resto...BUENISIMO!!!

me gusta mucho la manera en la que explicas los pasos en las imagenes, muy bueno sigue así!


Saludosss.