¿Cómo modifico un valor de clave de registro existente desde cmd?
Hay muchas opciones e interruptores, campanas y silbatos, para el comando Reg. Hay opciones para consultar, agregar y eliminar claves, subclaves y nombres de valores. Pero, ¿cómo se modifican los datos de un nombre de valor existente? ¿Elimina por completo el nombre del valor y luego lo agrega nuevamente y vuelve a escribir el valor / datos modificados? Eso parece muy engorroso ...
No estoy interesado en ningún script / automatización por lotes, al menos no ahora, solo quiero editar el registro simple a través del comando cmd Reg. Sin la necesidad de destruir una clave solo para agregarla un segundo más tarde con algunos datos adicionales. El mismo tipo de operación que puedes hacer en Regedit.
Aquí hay un ejemplo para estimular el proceso de pensamiento.
Key: HKEY_CURRENT_USER\Software\Citrix\Receiver
Value type: reg_sz
Value name: UpgradeDone
Value data: true
Ahora bien, este está bien, pero ¿y si debo cambiar los datos del valor de "verdadero" a "falso"? Para que obtenga esto en su lugar:
Key: HKEY_CURRENT_USER\Software\Citrix\Receiver
Value type: reg_sz
Value name: UpgradeDone
Value data: false
¿Cuáles son las opciones y la sintaxis para hacer eso desde cmd? ....
Actualizar:
Me di cuenta ahora que el ejemplo anterior podría haber sido demasiado fácil ...
En el ejemplo anterior, solo puedo hacer lo siguiente:
reg delete HKEY_CURRENT_USER\Software\Citrix\Receiver /v UpgradeDone
reg add HKEY_CURRENT_USER\Software\Citrix\Receiver /v UpgradeDone /t Reg_Sz /d false
Puedo permitirme eliminar completamente el valor y luego agregarlo nuevamente, porque los datos que contiene son muy pequeños. Es solo una cadena como "verdadero" o "falso". Eso no es demasiado difícil de recrear.
Aquí hay un ejemplo más difícil con más contenido de datos:
Key: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Environment
Value name: Path
Value type: Reg_Sz
Data: C:\Program Files (x86)\ImageMagick-6.8.5-Q16;C:\PROGRA~2\GTK2-R~1\bin;C:\Program Files (x86)\AMD APP\bin\x86_64;C:\Program Files (x86)\AMD APP\bin\x86;C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Program Files (x86)\ATI Technologies\ATI.ACE\Core-Static;C:\Program Files (x86)\Common Files\Acronis\SnapAPI\;C:\Windows\System32\WindowsPowerShell\v1.0\;"C:\Program Files (x86)\WinHasher";C:\Program Files (x86)\Android\android-sdk\tools\;C:\Program Files (x86)\Android\android-sdk\platform-tools\;C:\Program Files (x86)\GTK2-Runtime\bin;C:\Program Files (x86)\MiKTeX 2.9\miktex\bin\;C:\Program Files (x86)\Common Files\Teleca Shared;C:\Program Files (x86)\Notepad++
Quiero eliminar solo partes del contenido de datos. Específicamente, solo quiero eliminar la última ruta de búsqueda, C: \ Archivos de programa (x86) \ Notepad ++.
¿Cómo abordas este?
No esperas que vuelva a escribir todo esto ...
Respuestas:
Use
REG ADD
con el parámetro "/ f" para forzar la sobrescritura.REG ADD /?
explica los parámetrosPara insertar un nuevo valor o alternar un valor de cadena de "falso" a "verdadero", use un comando como este:
Ejemplo que lee un valor existente y agrega una cadena antes de volver a escribirlo:
Nota: Esta muestra supone que el valor anterior y el nuevo valor no tienen espacios en blanco. De lo contrario, hay que agregar comillas y cambiar el parámetro "tokens". Se omitió la comprobación adicional de errores por brevedad. Sin embargo, todo el código de manipulación del registro definitivamente debe realizar una verificación de errores adecuada.
fuente
reg add HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Environment /v Path /d ;C:\Program Files (x86)\Some_software /f
para agregar;C:\Program Files (x86)\Some_software
al final de la cadena?reg add HKEY_CURRENT_USER\Software\Citrix\Receiver /v UpgradeDone /t Reg_Sz /d false
Valor UpgradeDone existe, sobrescribir (Sí / No)? Entonces, sin el modificador / f, le preguntará si desea sobrescribir.También puede ver
REG import foo.reg
quéfoo.reg
archivo contiene la información de registro habitual desde la que exportaríaregedit.exe
.En su ejemplo, esto sería algo como:
Más información disponible en este artículo de Microsoft Technet .
fuente