Saltar al contenido

¿Cómo agrego una cadena REG_SZ de varias líneas al registro desde la línea de comando?

Solución:

Si no está limitado a un lenguaje de secuencias de comandos, puede hacerlo en C # con

Registry.CurrentUser.OpenSubKey(@"softwareclassessomething", true).SetValue("some key", "sometextnothertext", RegistryValueKind.String);

Puede importar cadenas REG_SZ de varias líneas que contengan retorno de carro (CR) y saltos de línea (LF) de fin de línea (EOL) en el registro utilizando archivos .reg siempre que no le importe traducir el texto como datos codificados hexadecimales UTF-16LE . Para importar un REG_SZ con este texto:

1st Line
2nd Line

Puede crear un archivo llamado MULTILINETEXT.REG que contenga esto:

Windows Registry Editor Version 5.00

[HKEY_CURRENT_USEREnvironment]
"MULTILINETEXT"=hex(1):31,00,73,00,74,00,20,00,4c,00,69,00,6e,00,65,00,0d,00,0a,00,
32,00,6e,00,64,00,20,00,4c,00,69,00,6e,00,65,00,0d,00,0a,00,
00,00

Para codificar ASCII en UTF-16LE, simplemente agregue un byte nulo después de cada valor de código ASCII. Los valores REG_SZ deben terminar con un carácter nulo (,00,00) en notación UTF-16LE.

Importar el cambio de registro en el archivo por lotes REG.EXE IMPORT MULTILINETEXT.REG.

El ejemplo usa la clave Entorno porque es conveniente, no porque sea particularmente útil para agregar tales datos a las variables del entorno. Se puede usar RegEdit para verificar que los datos REG_SZ importados contienen los caracteres CRLF.

Puede crear un archivo VBScript (.vbs) y simplemente llamarlo desde un archivo por lotes, asumiendo que está haciendo otras cosas en el lote además de este cambio de registro. En vbscript, estaría viendo algo como:

set WSHShell = CreateObject("WScript.Shell")  
WSHShell.RegWrite "HKEY_LOCAL_MACHINESOMEKEY", "value", "type"

Debería poder encontrar los posibles valores de tipo utilizando Google.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *