Вы находитесь на странице: 1из 20

1. Introducción al batch. Comandos básicos.

¿Qué es el lenguaje batch?


El lenguaje batch está formado por una serie de comandos MS-DOS que son guardados
en un archivo de procesamiento por lotes normalmente con formato .bat. Este lenguaje nos
puede servir para crear programas sencillitos usando simplemente programas de edición
de texto como el bloc de notas.

Este lenguaje es muy famoso también porque era usado hace tiempo por los hackers para
crear algunos virus muy sencillos pero a la vez de los peores, como por ejemplo uno que
formatea el ordenador o que hace que se reinicie sólo al encenderse, pero estos virus ya
no funcionan porque son bloqueados facilmente por windows, por lo que no aconsejo
aprender este lenguaje con tal finalidad, sino para aprender programación y crear
programas de utilidad.
Iniciación al lenguaje de MS-DOS

Para crear nuestros programas vamos a usar el bloc de notas. Para el que no lo conozca,
es un programa que viene con Windows que lo podemos encontrar en Inicio/Todos los
programas/ Accesorios.

Pues bien, abramos el bloc de notas, y vamos a empezar viendo los comandos que
encontraremos en todo lenguaje batch. El lenguaje batch siempre empieza con el
comando "@echo off" y termina con el comando "exit". De esta forma en la primera línea
de nuestro programa vamos a tener el comando "@echo off", y cuando el programa
ejecute el comando "exit", que no tiene por qué estar al final, el programa se cerrará.

Además le tenemos que poner un título a nuestro programa, que aparecerá en la barra de
arriba del mismo. Este título se pone con el comando "title título" (y donde pone títutlo
pondríamos el títutlo del programa). A este primer programa le vamos a llamar "Primer
programa", por lo que nuestro código va así:

@echo off
title Primer programa
exit

Comandos de texto (echo) y pause


Vamos a empezar con un programa que haga algo básico, y eso básico es mostrarnos
frases, texto. Pues bien, para mostrar texto tenemos dos comandos principales:

1. echo texto » El comando echo seguido de un texto cualquiera nos permite hacer que se
muestre ese texto en la ventana de nuestro programa.
2. echo. » El comando echo. (con el punto incluido) nos permite hacer un salto de línea en
el texto del programa, como si pulsáramos la tecla enter en cualquier programa de texto.

De esta forma si queremos que nuestro primer programa tenga un primer párrafo en el que
ponga "Este es el primer parrafo." y un segundo en el que ponga "Este es el segundo
parrafo. Un poquito mas largo." tendríamos nuesto código así:
@echo off
title Primer programa
echo Este es el primer parrafo.
echo.
echo Este es el segundo parrafo. Un poquito mas largo.
exit

Ahora quiero remalcar dos cosas. La primera es que no podemos usar tildes ni eñes en el
texto que se muestra en el programa. La segunda es que teniendo en cuenta la estructura
del programa que hemos hecho habrá un problema, y es que como se ejecutará todo del
tirón llegará al comando exit sin pausa alguna y no te dará tiempo a leer el texto que
ponga, por lo que vamos a insertar pausas en el programa. Los comandos de pausa son
los siguiente:

1. pause » El comando pause pausa el programa hasta que pulses una tecla y te muestra
un mensaje que dice "Presione una tecla para continuar".
2. pause >nul » El comando pause >nul pausa el programa pero sin mostrar ningún
mensaje de aviso.

Vamos a probar estos dos comandos, poniendo un pause >nul entre los dos párrafos y un
pause después del segundo:

@echo off
title Primer programa
echo Este es el primer parrafo.
echo.
pause >nul
echo Este es el segundo parrafo. Un poquito mas largo.
pause
exit

Ejecutar el programa
Para poder probar nuestro programa tenemos que ejecutarlo, para lo que hay que
guardarlo en formato bat. Esto lo hacemos dándole a guardar como y poniendo el nombre
que queramos terminado en .bat, por ejemplo "programa.bat". Entonces nos aparecerá el
archivo con el icono de un engranaje, y ese será nuestro programa que podremos abrir
para ver el resultado.

Para poder editar posteriormente nuestro programa le daremos un clic derecho y a editar.
2. Colores. Trabajando con variables.

Cambiar colores
Antes de empezar con una de las herramientas más usadas de la programación como son
las variables vamos a aprender a cambiar los colores tanto del texto en nuestro programa
como del fondo. Para ello usaremos el código color numeroletra, y donde pone numero
pondremos el color de fondo de la ventana del programa y donde pone letra el color del
texto. Las correspondencias entres los números y letras y los colores son las siguientes:
0 = Negro 1 = Azul 2 = Verde
3 = Aguamarina 4 = Rojo 5 = Púrpura
6 = Amarillo 7 = Blanco 8 = Gris
9 = Azul claro B = Aguamarina C = Rojo
A = Verde claro E = Amarillo F = Blanco
D = Púrpura

Vamos a hacer por ejemplo que en nuestro primer programa al principio se ponga el fondo
rojo y las letras amarillas, y que cuando vaya a aparecer el segundo párrafo aparezca el
fondo negro y las letras color aguamarina.

@echo off
title Primer programa
color 4E
echo Este es el primer parrafo.
echo.
pause >nul
color 0B
echo Este es el segundo parrafo. Un poquito mas largo.
pause
exit

¿Qué es una variable?


Una vriable es una entidad informática a la que le asignamos un nombre, por ejemplo var1,
var2 o pepe, y a la que le asignamos también un valor, que puede ser numérico o con
letras.

Las variables se suelen usar para hacer operaciones entre valores numéricos, o para
recordar datos que diga el usuario.

Por poneros un ejemplo, podemos hacer que el programa pregunte un número al usuario,
que guarde ese número en una variable, que le pregunte otro y que lo guarde en otra
variable, y que luego cree otra variable que sea la media de las otras dos variables. Esta
sería la forma de hacer la media entre dos número cualquiera.
Crear variables

Para crear una variable usamos el comando set var=algo, siendo lo que está en rojo el
nombre de la variable, y lo que está en verde el valor que le asignamos a la misma.
Algo importante es que cuando queramos hacer referencia a una variable tendremos que
ponerla entre signos %. De esta forma si queremos mostrar en pantalla una variable que
se llame var tendremos que poner el código echo %var%.

Al igual hay que tener en cuenta que si asignas un valor a una variable que ya existía esa
vriable tendrá el valor que se le asignó último.

Asignar un valor fijo a una variable no tiene mucha utilidad. Algo que tiene más utilidad es
hacer una pregunta al usuario y lo que responda será el valor de la variable. Esto último se
haría usando el comando set/p var=pregunta

De esta forma podemos hacer un programa que te pregunte el nombre y los dos apellidos
y luego lo muestre todo seguido de la siguiente forma:

@echo off
title Nombre y apellidos
set/p nombre=Cual es tu nombre?
set/p apellido=Cual es tu primer apellido?
set/p apellido2=Cual es tu segundo apellido?
echo.
echo Tu nombre completo es %nombre% %apellido% %apellido2%
pause >nul
exit

Por último vamos a aprender a hacer operaciones con las variables. Para hacer
operaciones usamos el comando siguiente:
set/a var1= %var2% signo %var3%
Lo que está en rojo es la variable en la que guardará el resultado, las variables verdes son
las que opera, y donde pone signo pondremos un + si queremos sumar, - para restar, *
para multiplicar o / para dividir. Un ejemplo sería:
set/a var= %var1% / %var2%
Eso lo que hace es dividir las dos variables. También podemos haces operaciones con una
variable y un número, por ejemplo:
set/a var= %var1% * 2
Este último multiplica la variable var1 por dos.

Sabiendo esto vamos a hacer el programa que hace la media de dos números. Tenemos
que hacer que le pregunte los dos números, y luego que los sume y acto seguido los divida
entre dos (en las operaciones podemos poner paréntesis para indicar el orden, en el
ejemplo lo vereis mejor). De esta forma nuestro programa quedaría así:

@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

He de remarcar que en una variable numérica no puede haber números decimales, los
quita directamente, por lo que si la media saliera por ejemplo 2,5 el programa te dirá que la
media es 2.

Con lo que veremos en el siguiente capítulo podremos hacer que la cantidad de número
entre los que hacer la media los elija el usuario, y que no sean sólo dos.

EJERCICIO: Recoger por pantalla dos valores númericos y un carácter (+ - * /) y


realizar la operación aritmética correspondiente.

3. Comandos goto, if y else


Crear "menús" y el comando goto
Muchas veces vamos a necesitar dividir nuestro programa en partes (a partir de ahora las
llamaremos menús), y que dependiendo alguna condición vaya a un menú u otro. Más
adelante veremos un ejemplo de para qué sirve esto.

Para crear un menú pondremos en una lína el código :nombre (con los dos puntos), de
forma que indicamos que ahí empieza un menú que se llama nombre. Luego usaremos el
código goto nombre para ir al menú nombre. De esta forma vamos a hacer como ejemplo
un programa que al empezar tenga un menu llamado frases en el que escriba dos frases, y
luego tenga un comando goto frases, de forma que el programa vuelve atrás al menú
frases y nunca acaba (esto se llama bucle). Este programa sería por ejemplo así:

@echo off
title Bucle de ejemplo
color 0A

:frases
echo 100101001001010010010 Creado por Mario100101001001010010010
echo 011010110110101101101 Creado por Mario 011010110110101101101

goto frases
exit
Cuando lo abrais vereis que no para de escribirse la frase, puesto que siempre vuelve el
programa atrás.

Comandos if y else (establecer una condición)


El código if nos sirve para hacer que en el caso de que algo sea cierto o falso haga otra
cosa. Por poneros un ejemplo, imaginaos que queremos hacer la división de dos números,
pero si el denominador es 0 no podemos hacerla, puesto que algo entre 0 es infinito. Por lo
tanto tenemos que verificar que el número de abajo no sea 0 para que no dé error, y si es
0 que le vuelva a preguntar el número. Este programa lo crearemos ahora de ejemplo.

Pues bien, el código de if tiene esta estructura:


if %var%==valor (comando) else (comando2)
Esto hace que si la variable llamada "var" tiene el valor "valor" ejecute el código
"comando", y si no tiene ese valor que realize el valor "comando2". También podemos
eliminar la segunda parte si no la necesitamos y dejar el código de la siguiente forma:
if %var%==valor (comando)

De esta forma vamos a hacer el programa de dividir un número entre otro:

@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

Ahora vamos a remarcar un par de cosas. Primero que podemos sustituir el comando if por
if not, de forma que realiza el comando si la condición no es verdad.

Lo segundo es que si os fijais usamos == en vez de un solo =. Cuando comparamos dos


cosas tenemos que usar siempre el doble signo ==. Además de los signos igual podemos
usar las siguientes cosas:
%var% == valor Verifica si var es igual al valor
%var% LSS valor Verifica si var es menor que el valor
%var% GTR valor Verifica si var es mayor que el valor
%var% LEQ valor Verifica si var es menor o igual al valor
%var% GEQ valor Verifica si var es mayor o igual al valor

Para finalizar vamos a hacer un ejemplo más que será un programa para hacer la media,
pero esta vez no será entre dos números, sino que los elegirá el usuario. Este programa
tendría la siguiente estructura:

EJERCICIO

Realizar un menú con 4 opciones(1. Cambiar color letra 2. Cambiar fondo y letra 3.
Salir)

EJERCICIO

Realizar un menú con 4 opciones (1.Suma, 2.Resta, 3.Multiplicación, 4.División).

Se elegirá una opción de las cuatro y se solicitarán dos números por teclado.

Se realizará la operación y se mostrará el resultado.

Finalmente se pide si el usuario quiere volver a realizar otra operación o terminar el


programa.

EJERCICIO

Calcular la media de un determinado número de 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

4. Variables predefinidas
Nosotros no podemos definir todos los nombres de variables que queramos, ya que
algunos nombres ya vienen cogidos por nuestro sistema operativo y tienen su función
correspondiente. En esta parte vamos a nombrar algunos de ellos, ya que puede que en
algunos programas requiráis una lectura de los mismos. Estas variables son:

1. %ALLUSERSPROFILE% => Esta variable devuelve la localización del perfil de todos los
usuarios.
2. %APPDATA% => Devuelve el lugar donde las aplicaciones guardan los datos por
defecto (Normalmente la carpeta de Archivos de Programa).
3. %CD% => Devuelve el directorio en el que estás en ese momento (se explicará más
adelante con sus comandos para cambiarse de directorio).
4. %CMDCMDLINE% => Muestra el comando exacto empleado para acceder al intérprete
de comandos (cmd.exe).
5. %CMDEXTVERSION% => Devuelve la extensión de nuestro intérprete de comandos.
6. %COMPUTERNAME% => Devuelve el nombre del equipo.
7. %COMSPEC% => Devuelve la ruta de la shell de comandos.
8. %DATE% => Devuelve la fecha actual.
9. %ERRORLEVEL% => Devuelve el código de error del último comando ejecutado.
10. %HOMEDRIVE% => Devuelve la unidad en la que está el directorio en el que estás
actualmente.
11. %HOMEPATH% => Devuelve la ruta completa a dicho directorio.
12. %LOGONSERVER% => Devuelve el nombre de nuestro servidor.
13. %NUMBER_OF_PROCESSORS% => Devuelve el número de procesadores instalados
en el equipo.
14. %OS% => Devuelve nuestro sistema operativo, con la excepción de Windows 2000 y
XP que lo devuelven como Windows_NT.
15. %PATH% => Devuelve la ruta a la carpeta de los ejecutables más importantes del
sistema.
16. %PATHEXT% => Devuelve las extensiones de archivos que nuestro sistema considera
ejecutables.
17. %PROCESSOR_ARCHITECTURE% => Devuelve la arquitectura del procesador.
18. %PROCESSOR_IDENTIFIER% => Devuelve la descripción del procesador.
19. %PROCESSOR_LEVEL% => Devuelve el número de modelo de procesador.
20. %PROCESSOR_REVISION% => Devuelve el número de revisión del procesador.
21. %PROGRAMFILES% => Devuelve la carpeta donde se guardan los programas
(normalmente Archivos de Programa).
22. %RANDOM% => Devuelve un número al azar entre 0 y 32767.
23. %SYSTEMDRIVE% => Devuelve la unidad que contiene el directorio raíz del sistema.
24. %SYSTEMROOT% => Devuelve la carpeta de administración, que suele ser
C://Windows
25. %TEMP% => Devuelve el directorio donde están los archivos temporales.
26. %TMP% => Igual que el anterior.
27. %TIME% => Devuelve la hora actual.
28. %USERNAME% => Devuelve el nombre del usuario actual.
29. %USERPROFILE% => Devuelve la ruta del directorio donde están los archivos del
usuario actual.
30. %WINDIR% => Devuelve la ruta de la carpeta del sistema operativo

De esta forma nosotros podemos hacer por ejemplo un programa que nos muestre la hora
actual, la fecha y el usuario que la ha visto de la siguiente forma:

@echo off
title Hora actual
echo El usuario %USERNAME% ha solicitado ver la hora
pause
echo La fecha es %DATE% y son las %TIME%
pause>nul
exit

EJERCICIO

Realizar un programa Batch que a partir del DNI, genere la letra del DNI.

Sacar letra del DNI:


Forma : http://negocios.uncomo.com/articulo/como-obtener-la-letra-del-dni-
16654.html

Para calcular el resto de dos valores, utilizamos %%

@Echo Off
set /a "mod=11%%2"
Echo.11 mod 2 = %mod%
pause > nul
exit
ALGUNOS EJERCICIOS…

1.- Crear un batch con un menú donde se puedan ejecutar 3 aplicaciones diferentes en función
de la opción que seleccionemos, por ejemplo, seleccionando la opción 1. Se abriría el bloc de
notas de Windows, seleccionando la opción 2, se abriría un navegador con la página de inicio
www.google.es y por último, seleccionando la opción 3 se ejecutaría el Paint.

2.- Insertar en un fichero un listado de todos los ficheros de una determinada ruta que
cumplen un patrón. (el patrón y la ruta serán solicitados por teclado al usuario)

3.- Crear un fichero seleccionando primero el tipo de fichero que queremos crear (.bat ó .txt),
indicar después el nombre del fichero, la ruta donde lo crearemos y el contenido. Por último,
mostrar el contenido del fichero que hemos creado.

4.- Crear un fichero en una ruta determinada solicitada al usuario, una vez creado, ocultarlo y
enviar un listado de la carpeta donde se ha creado el fichero, a otro fichero llamado oculto.txt,
finalmente mostrar este fichero (oculto.txt) en pantalla.

5.- Realizar un fichero BAT con el siguiente menú y que realice las opciones que se especifican.

MENU PRINCIPAL
1. Utilidades de ficheros
2. Otras utilidades
3. Salir al S.O

MENU DEL FICHERO


A. Copiar un fichero solicitando origen, destino y fichero
B. Borrar todos los ficheros de una ruta especificada y que cumplan un patrón recogido por
teclado.
C. Salir al menú principal

OTROS
A. Solicitar la base y la altura para un triángulo y calcular su área, teniendo en cuenta que si la
base o la altura es mayor de 10, habrá que mostrar un mensaje de error y detener el programa.
B. Crea una nueva clave en la ruta HKEY_CLASSES_ROOT\Drive\shell llamada “MContext”.
Confirma que la clave se ha creado correctamente, haciendo BOTÓN DERECHO sobre cualquiera
de las unidades de disco de tu PC.
B. Salir al menú principal

COMPROBAR SI UN FICHERO EXISTE EN UNA


RUTA DETERMINADA:
if exist C:\myprogram\sync\data.handler echo Now Exiting && Exit
if not exist C:\myprogram\html\data.sql Exit
COMANDO SHUTDOWN:
shutdown -r -t 200 – apaga el pc en 200 segundos

shutdown - a  cancela el reinicio del pc

Shutdown -r -m \\ordenador2 -t 10 para reiniciar el pc ordenador2 que está en red.


Como modificar claves y valores del
Registro usando la línea de comandos y
archivos batch

Como modificar y cambiar claves y valores del Registro de Windows


mediante la línea de comandos, la consola de CMD o usando archivos
batch, códigos y ejemplos prácticos.

Mediante la línea de comandos es posible modificar, editar y cambiar


cualquier valor o clave del Registro de Windows, sin tener que utilizar la
herramienta Regedit.
Aunque el método más fácil y práctico es crear un archivo REG para
agregarlo al Registro, tenemos siempre la alternativa de la línea de
comandos, que en ocasiones es el método ideal o el único posible.
Por ejemplo en los casos que no hay acceso a Regedit debido a la
modificación de claves por malware o para crear aplicaciones ejecutables
o archivos batch, en las que la función que deseamos ejecutar, requiere la
modificación de un valor en el registro.
Para editar el registro está disponible en la consola de CMD el comando
REG con varios subcomandos para usos específicos, su empleo no es
difícil, pero por supuesto requiere de un cuidado especial la revisión de la
sintaxis del cualquier código antes de ejecutarlo, por lo delicado de su
objetivo y posible efecto desastroso.
También está disponible el comando REGEDIT para importar, exportar o
eliminar configuraciones en el registro desde un archivo de texto plano
.REG.

Como usar el comando REG para modificar


claves y valores del Registro

El comando REG se compone de varios sub comandos, cada uno para un


uso completamente diferente como se documentará mas adelante, de
ellos REG QUERY, REG ADD, REG DELETE y REG COPY se pueden utilizar
para hacer modificaciones en equipos remotos en la red, solo es
necesario agregar \\NombreEquipo suponiendo que el servicio Registro
Remoto (RemoteRegistry) este ejecutándose. Si no es así siempre es
posible iniciarlo ejecutando el comando: NET START RemoteRegistry.
Para el uso en la red sólo están disponibles las ramas del registro HKLM y
HKU.
Los restantes sub comandos solo están disponibles para su uso en el
equipo local.

Sub comandos del comando REG

Comando Empleo

REG QUERY Inquiere el valor de una clave

REG ADD Agrega una clave o valor

REG DELETE Agrega una clave o valor

REG COPY Copia claves y valores desde y hacia otro equipo o en el equipo local

REG SAVE Guarda claves del registro en archivos .HIV locales (archivo de subárbol)

REG RESTORE Restaura archivo de subárbol que han sido guardados

REG LOAD, REG Transfieren y mueven claves dentro del registro


UNLOAD

REG COMPARE Compara claves y valores dentro del registro

REG EXPORT Exporta claves, subclaves y valores a un archivo REG

REG IMPORT Importa los datos exportados previamente desde un archivo REG
¿Cómo utilizar los comandos REG ADD y REG DELETE?

Una breve explicación de las posibilidades de empleo de los comandos


REG ADD y REG DELETE, al ser los de uso más frecuentes en el equipo
local.

Sintaxis
REG ADD Clave /v NombreValor /t TipoDato /d Dato [/f]
REG DELETE Clave /v NombreValor [/f]

Opciones

• /v Nombre del valor de clave seleccionada


• /s Se especifican todas las subclaves y valores de forma recursiva
• /f Fuerza la sobre escritura o eliminación sin avisar (opcional)
• /ve Establece valor vacio predeterminado (REG ADD)
• /d Datos que se asignan al nombre de valor (REG ADD)
• /va Elimina todos los valores en la clave actual (REG DELETE)
• /t Tipos de datos. Los tipos válidos son:
REG_SZ, REG_MULTI_SZ, REG_EXPAND_SZ, REG_DWORD, REG_QWORD,
REG_BINARY, REG_NONE
Si se omite al usar el comando REG ADD, se asume que es REG_SZ.

En todos los casos se pueden usar las siguientes abreviaturas:


HKEY_CURRENT_USER = HKCU
HKEY_LOCAL_MACHINE = HKLM

REG_BINARY: Se trata de los datos binarios sin procesar.

Component Information : REG_BINARY : 00 00 00...

REG_DWORD: Se trata de datos representados por un número de cuatro


bytes de longitud.

ErrorControl: REG_DWORD: 0 x 1
REG_EXPAND_SZ:Una cadena de datos expansible que es texto que contiene
una variable que sustituirse cuando llama a una aplicación.Por ejemplo, para
el valor siguiente, la cadena "% SystemRoot %" se reemplaza por la ubicación
real del directorio

File : REG_EXPAND_SZ : %SystemRoot%\file.exe

REG_MULTI_SZ: Se trata de una cadena múltiple. Los valores que contienen


listas o valores múltiples texto legible humano suelen ser de este tipo. Las
entradas están separadas por caracteres nulos. Por ejemplo, la siguiente
entrada de valor especifica las reglas de enlace para un transporte de red:

bindable : REG_MULTI_SZ : dlcDriver dlcDriver non non 50

REG_SZ: Se trata de una secuencia de caracteres que representa el texto


legible humano. Por ejemplo, la descripción de un componente normalmente
es este tipo:

DisplayName : REG_SZ : Messenger

Ejemplos del uso de los comandos REG ADD y REG


DELETE.

Los siguientes ejemplos permiten comprender las diferencias y similitudes


entre la creación de una clave del registro mediante un archivo REG y con
un archivo batch que utiliza el comando REG ADD.
Crear valores mediante el comando REG ADD
En el primer caso se crea un valor vacío Predeterminado, en el segundo
caso un valor Predeterminado con datos y en el tercer caso un valor
DWORD de valor 1.

Windows Registry Editor Version 5.00

[HKEY_CURRENT_USER\Prueba]

@=""

@echo off

REG ADD "HKCU\Prueba" /ve /f

Windows Registry Editor Version 5.00

[HKEY_CURRENT_USER\Prueba]

@="Dato"

@echo off

REG ADD "HKCU\Prueba" /ve /t REG_SZ /d "Dato" /f

Windows Registry Editor Version 5.00

[HKEY_CURRENT_USER\Prueba]

"test"=dword:1

@echo off

REG ADD "HKCU\Prueba" /v test /t REG_DWORD /d 1 /f

Comprobar y crear un valor mediante el comando REG

En el siguiente ejemplo se utilizan tres líneas de código para comprobar si


en la consola de CMD está habilitada la modalidad de Edición rápida, si
no es así se establece.
1- Se hace una petición al registro para ver los valores de la clave y las
subclaves que establecen la configuración de la consola de cmd

REG QUERY HKCU\Console\

2- Se pide que se muestre el valor exacto.

REG QUERY HKCU\Console\ /v QuickEdit

3- Se establece la Edición rápida

REG ADD HKCU\Console\ /v QuickEdit /d 1

Deshabilitar y habilitar el Administrador de tareas


Se agrega una entrada para deshabilitar el Administrador de tareas de
Windows
REG ADD
HKCU\Software\Microsoft\Windows\CurrentVersion\Policies\System\ /v
DisableTaskMgr /t REG_DWORD /d 1 /f

Se elimina la entrada anterior


REG DELETE HKCU\Software\Microsoft\Windows\CurrentVersion\Policies\System\
/v DisableTaskMgr /f

Agregar una aplicación en el inicio de Windows


Se agrega una entrada al registro para iniciar el archivo batch nombrado
"aviso.bat" que supuestamente se encuentra en la unidad C: con
Windows
REG ADD HKCU\Software\Microsoft\Windows\CurrentVersion\Run /v IniciarProgramas /t
REG_SZ /d "C:\aviso.bat"

Usar el comando REG en un archivo batch

Una broma que sirve de ejemplo práctico de cómo usar el comando REG
en un archivo batch.
Crea en la carpeta TEMP un archivo batch y a continuación agrega una
entrada en el Registro para que se ejecute en el inicio de Windows.
El batch contiene un simple mensaje, "Eres un friker, Todos los días veras
esto....".
No hace ningún daño, fue creado solo con objetivos pedagógicos, la
entrada se puede desactivar fácilmente usando la herramienta MSCONFIG
o comentando una línea del archivo batch que elimina la entrada anterior.
Por otra parte el archivo batch creado en la carpeta Temp será eliminado
completamente al Liberar espacio en disco.
Nos da una idea de lo que se puede lograr con un simple archivo batch,
por lo que antes de ejecutarlos es mejor siempre mirar el código y si no
estamos seguros y aparece el comando REG por algún lado, no
ejecutarlos.
Para descomentar la línea final del archivo batch que elimina la entrada
creada, solo es necesario quitar los dos puntos al comienzo de dicha línea.

@echo off
echo @echo off >%temp%\friker.bat
echo echo Eres un friker >>%temp%\friker.bat
echo echo Todos los dias veras esto.....>>%temp%\friker.bat
echo echo.>>%temp%\friker.bat
echo pause>nul>>%temp%\friker.bat
REG ADD
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run /v friker /t
REG_SZ /d "%temp%\friker.bat"
::REG DELETE
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run /v friker /f

Ejemplos del usos de los comandos REG EXPORT y REG


IMPORT

Como exportar la configuración de los servicios del usuario en un archivo


REG y despues importalos al registro.

REG EXPORT HKLM\SYSTEM\CurrentControlSet\Services C:\Servicios.reg

REG IMPORT C:\Servicios.reg


Los datos del registro que se encuentren en la clave HKCU se podrán ver y
modificar por el usuario de la sesión actual.
Los datos del registro que se encuentren en la clave HKLM se podrán ver
por todos los usuarios, pero solo podrán ser modificados por el
administrador.

¿Cómo usar el comando REGEDIT?

El comando REGEDIT permite importar, exportar o eliminar


configuraciones en el registro desde un archivo de texto plano .REG.

Opciones:

• REGEDIT Abre el editor del registro


• REGEDIT /E ruta Exporta el registro
• REGEDIT /E ruta "Rama" Exporta parte del registro, sustituye Rama por
el árbol correspondiente
• REGEDIT ruta Importa un archivo REG
• REGEDIT /S ruta Importa un archivo REG de forma silenciosa

Ejemplos del uso del comando REGEDIT

Para guardar una copia solo de la rama HKEY_CURRENT_USER usa:

REGEDIT /E C:\Backup\copia.reg "HKEY_CURRENT_USER"

Para guardar una copia completa del registro usa:

REGEDIT /E C:\Backup\copia.reg

Para restaurar una copia guardada del registro usa:

REGEDIT C:\Backup\copia.reg

Finalmente si te interesa toda la información de los comandos anteriores


crea un archivo batch con el siguiente código que escribirá todas las
opciones de estos comandos a un único archivo de texto creado en el
escritorio nombrado "opciones-reg.doc".

@echo off
REG QUERY /?>reg.doc

REG ADD /?>>reg.doc

REG DELETE /?>>reg.doc

REG COPY /?>>reg.doc

REG SAVE /?>>reg.doc

REG RESTORE /?>>reg.doc

REG LOAD /?>>reg.doc

REG UNLOAD /?>>reg.doc

REG COMPARE /?>>reg.doc

REG EXPORT /?>>reg.doc

REG IMPORT /?>>reg.doc

REG FLAGS /?>>reg.doc

REGEDIT /?>>%userprofile%\Desktop\opciones-reg.doc

Вам также может понравиться