Secuencias de comandos de archivos por lotes Cómo exportar, buscar y reemplazar y volver a importar una clave de registro (XP, Win2k3, Vista, Windows 7)

Esta receta está diseñada para las personas más expertas en sistemas operativos y para aquellos que trabajan en un entorno corporativo de implementación de aplicaciones. Muchas veces, cuando trabaja en TI y en un equipo de implementación de aplicaciones, se encuentra en situaciones en las que necesita encontrar una clave de registro, encontrar una clave y reemplazarla con una nueva entrada. Sin embargo, a veces hay casos en los que conoce la clave de entrada del registro principal pero no está seguro de qué entradas a continuación puede ser necesario cambiarla. ¡Encontremos una solución!


ADVERTENCIA:
Si no se siente cómodo con el símbolo del sistema, los archivos por lotes y el registro de Windows; por favor tome precauciones adicionales al probar / usar este archivo por lotes. Personalmente recomendaría la prueba en una máquina virtual (es decir, Virtualbox, gratuita; VMWare Workstation) o una máquina que no le interesa. Has sido advertido. 🙂

OK, primero que nada vamos a empezar con las dos piezas de código. Para usar esto, cópielos y péguelos en el Bloc de notas y luego guárdelos con los nombres dados (asegúrese de cambiar los archivos txt al cuadro de diálogo Guardar de todos los archivos en el Bloc de notas)

Nombre del archivo: Reemplazar. (a través de dostips.com)

@echo apagado
AJUSTE DE EXTENSIONES SETLOCALES
EXPLOTACIÓN DE LA DISCAPACIDAD ENLACE
REM BatchSubstitude - analiza un archivo línea por línea y reemplaza una subcadena "
Sintaxis REM: BatchSubstitude.bat OldStr NewStr File
REM OldStr [in] - cadena a reemplazar
REM NewStr [in] - cadena para reemplazar con
Archivo REM [en] - archivo a analizar
REM $ cambiado 20100115
Fuente de REM $ http://www.dostips.com
if "% ~ 1" == "" findstr "^ ::"% ~ f0 "& GOTO: EOF
para / f "tokens = 1, * delims =]" %% A in ('' type% 3 | find / n / v "" "') do (
establecer "línea = %% B"
si la linea definida
conjunto de llamadas "línea = eco. %% línea:% ~ 1 =% ~ 2 %%"
para / f "delims =" %% X en ('"echo." %% line %% ""') do %% ~ X
) ELSE echo.
)

___________________________

Nombre del archivo: MainApp.bat


@echo apagado
REM Autor: seamonkey420
REM http://blogs.tech-recipes.com/seamonkey420
movimiento rápido del ojo
REM 15/03/2010
REM Este lote analizará y actualizará las claves de registro para el módulo de dictado
REM Esto es lo que hacen los pasos:
REM 1. Exporta la clave de registro a un archivo viewFolder.txt
REM AÑADIR ENTRADA DE REGISTRO PARA EXPORTAR (es decir, formateado como: HKEY_CURRENT_USER \ Control Panel \ Mouse)
REM 2. escribe la visualización del archivo y luego encuentra cualquier entrada que contenga "Sí" y la sustituya por "No" y la guarda en el nuevo archivo keys.txt
REM 3. Hacemos eco de la versión de registro requerida en un nuevo archivo de registro
REM 4. Luego la sección de eco que los valores irán debajo
REM 5. Reemplace el nombre del servidor de las entradas utilizando un archivo Replace.bat por separado y luego agregue (cortesía de www.dostips.com) al archivo newkeys.reg
REM 6. Finalmente, las nuevas entradas de registro en el archivo newkeys.reg se vuelven a importar al registro
REM 7. Por último, se eliminan todos los archivos temporales


set rkey = HKEY_CURRENT_USER \ Control Panel \ Mouse
set findv = "Sí"
set replacev = "No"
set registryver = Windows Registry Editor Version 5.00
echo "Cambiando los valores del registro, por favor espere ..."
REG EXPORT "% rkey%" viewFolder.txt
tipo viewFolder.txt | encuentra% findv%> keys.txt
echo% registryver%> newkeys.reg
echo [% rkey%] >> newkeys.reg
CALL Replace.bat% findv%% replacev% keys.txt >> newkeys.reg
registro import newkeys.reg
del / q newkeys.reg viewFolder.txt keys.txt
salida

______________________

Para usar esto, deberá editar el MainApp.bat (haga clic derecho en él y haga clic en Editar, se abrirá el Bloc de notas)

Básicamente, MainApp.bat consultará una clave de registro que usted defina en la variable "set rkey =" (en mi archivo por lotes, uso dos configuraciones de mouse como ejemplo)

Luego exportará la clave y las subclaves a un archivo llamado viewFolder.txt

Luego usa el comando FIND para buscar en el archivo viewFolder.txt el valor establecido en la variable "findv =" (en mi archivo por lotes, Sí) y luego exportar esos valores a un nuevo archivo llamado keys.txt

Luego creamos nuestro archivo de registro que se reimportará con los nuevos valores al hacer eco de la versión del registro requerida en un archivo llamado newkeys.reg

Luego adjuntaremos la clave de registro que buscamos en el archivo newkeys.reg (en mi archivo por lotes, la clave del panel de control de Moue)

Ahora, usamos el archivo Replace.bat para buscar la clave que queremos reemplazar y reemplazarla con la nueva entrada de clave y luego agregar estos datos al archivo newkeys.reg.
Entonces, en este punto, ya tenemos listo para reimportar el archivo de registro con los nuevos valores y usar la importación de registros para volver a importarlo.
Finalmente, limpiamos y eliminamos los archivos newkeys.reg, viewFolder.txt y keys.txt y salimos de nuestro programa.

NOTAS:
-Requiere ser una cuenta de administrador para ejecutar o poder ejecutar con derechos elevados (como con la mayoría de las cosas basadas en el registro)
- Ejecute como usuario de sistema seguro a través de Novell Zenworks para ejecutar en una computadora que no sea de administrador y obtenga las claves adecuadas si se trata de una clave CURRENT_USER.
-Ponga REM en frente de cualquier línea para comentarlo y, a su vez, evite correr.
-Agregar una pausa al final del archivo por lotes para dejar la ventana del símbolo del sistema abierta y también cambiar @echo off a @echo on (para depurar, probar)
-También puedes usar otras variables del sistema en este archivo por lotes
-Trabaja en cualquier versión de Windows XP y superior; Vista y Win7.