Foro de elhacker.net

Programación => Scripting => Mensaje iniciado por: <ИΘZIЭ(ŦB> en 17 Agosto 2009, 03:15 am



Título: Ayuda con claves de registro abreviadas (uso del símbolo ~) SOLUCIONADO
Publicado por: <ИΘZIЭ(ŦB> en 17 Agosto 2009, 03:15 am
Buenas compañeros. Un saludo primeramente.

Les cuento que he notado y leído que al trabajar con cadenas o claves de registro que tienen espacios en blanco se presentan problemas. Lo que no he logrado encontrar es cómo debo escribir la clave que lleva los espacios para que sea reconocida en un .bat

Por ejemplo, estoy tratando de modificar un valor contenido en la clave HKLM\SYSTEM\ControlSet001\Control\Session Manager\Environment, pero como ven, parte de la cadena (Session Manager) lleva un espacio en blanco, y por eso me sale un error.
Leí en un tutorial que se puede usar el caracter ~ para abreviar la cadena, pero no he hallado la forma correcta de usarlo. El tutorial coloca este ejemplo:

DA ERROR:
reg delete hklm\software\microsoft\windows\currentversion\run\QuickTime Task

ABREVIADO Y SIN ERROR:
reg delete hklm\software\microsoft\windows\currentversion\run\QuickT~1

Así pues, lo que necesito es que alguno de uds pueda ayudarme con este detalle al que por más que busco no le he hallado respuesta. Gracias de antemano.


Título: Re: Ayuda con claves de registro abreviadas (uso del símbolo ~)
Publicado por: Darioxhcx en 17 Agosto 2009, 03:32 am
cuando las rutas llevan espacios van entre comillas
""
Código:

reg delete "hklm\software\microsoft\windows\currentversion\run\QuickTime Task"
no se si es eso lo que buscabas...
saludos


Título: Re: Ayuda con claves de registro abreviadas (uso del símbolo ~)
Publicado por: <ИΘZIЭ(ŦB> en 17 Agosto 2009, 04:21 am
Gracias pana, pero eso no funciona. Eso aplica es a rutas de carpetas, pero no a las claves de registro.


Título: Re: Ayuda con claves de registro abreviadas (uso del símbolo ~)
Publicado por: leogtz en 17 Agosto 2009, 04:35 am
Código:
reg delete "hklm\software\microsoft\windows\currentversion\run" /v "QuickTime Task"
Espero no equivocarme, no estoy en Windows.
Código:
http://ss64.com/nt/reg.html


Título: Re: Ayuda con claves de registro abreviadas (uso del símbolo ~)
Publicado por: <ИΘZIЭ(ŦB> en 17 Agosto 2009, 04:53 am
Gracias también por interesarte, pero tampoco es así.

Lo que necesito es saber cómo se colocan las claves completas en un .bat cuando estas tienen espacios en blanco.


Título: Re: Ayuda con claves de registro abreviadas (uso del símbolo ~)
Publicado por: Novlucker en 17 Agosto 2009, 05:45 am
REG ADD /? :rolleyes:

Las claves que tienen espacio van entre comillas, ... el problema es que no le pasas todos los parámetros como se debe ... va llave del registro ... nombre de la clave ... y valor .. sin olvidar el tipo de valor .. yo no veo todos esos parámetros en lo que tu dejas :P

Ej:
Código
  1. REG ADD HKLM\Software\Microsoft\Windows\CurrentVersion\Run /v nombreclave /t REG_SZ /d porejunbat.bat

Saludos


Título: Re: Ayuda con claves de registro abreviadas (uso del símbolo ~)
Publicado por: <ИΘZIЭ(ŦB> en 17 Agosto 2009, 06:16 am
Pana, intenta hacer eso con una clave que tenga espacios en blanco. La que usaste no los tiene. Así tengo un montón de .bat que corren perfectamente. El problema es cuando la clave tiene espacio en blanco como dije al principio. Por qué no usas esa misma que coloqué al abrir el tema para que veas que da error?

Gracias igual por escribir. Seguiré esperando su ayuda foristas.


Título: Re: Ayuda con claves de registro abreviadas (uso del símbolo ~)
Publicado por: Novlucker en 17 Agosto 2009, 13:11 pm
Bueno ... acabo de revisar la ayuda y es (verificado)...

Código
  1. REG DELETE hklm\software\Microsoft\Windows\Currentversion\run /v "Este es un valor"

Si miramos es exactamente lo que ha puesto Leo Gutierrez, ya que lo que eliminas es uno de los valores dentro de la rama run
Si no te funciona deja pantallazo de la ventana de regedit con dicha clave .. y texto en ms-dos .. ah! y por si acaso permisos de usuario de esa pc, porque no cualquiera puede tocar en el HKLM :P

Saludos
 


Título: Re: Ayuda con claves de registro abreviadas (uso del símbolo ~)
Publicado por: <ИΘZIЭ(ŦB> en 17 Agosto 2009, 18:44 pm
Amigo Novlucker, de verdad agradezco tu ayuda. Sin embargo, creo que no has notado mi punto.

En el ejemplo que usas la clave no tiene espacio en blanco, y el problema se da justo ante ese detalle. Por tanto, tu ejemplo no me resulta útil ante mi problema.

Como dije al principio, mi problema se presenta al trabajar con esta clave:

HKLM\SYSTEM\ControlSet001\Control\Session Manager\Environment

ya que, como podrás notar, Session Manager tiene un espacio. Específicamente, lo que trato de hacer es incluir un registro contenido en esa clave, lo cual quedaría así:

reg add HKLM\SYSTEM\ControlSet001\Control\Session Manager\Environment /v clave /t reg_expand_sz /d valor /f

Ya corroboré todo, y el error se produce por el espacio en blanco de Session Manager. Todo lo que has mencionado lo sé, y te lo agradezco, pero necesito es saber cómo debo escribir esta clave para que corra en ms-dos.


Título: Re: Ayuda con claves de registro abreviadas (uso del símbolo ~)
Publicado por: Novlucker en 17 Agosto 2009, 19:00 pm
Es que si he visto lo que pones ... SE que va CON ESPACIOS

Pero insisto .. he probado y funciona sin problemas ... el que te haya dejado un ejemplo sin espacios no quiere decir que no lo haya probado, además de que mi último ejemplo si tiene espacios (esta en el valor), solo que tu ponías como ej un REG DELETE y ahora es un REG ADD, por eso lo había puesto con REG DELETE

En lo que dejas no veo comillas de ningún tipo y como se te ha dicho ... debería de llevarlas .. ej (lo acabo de copiar/pegar):

Código
  1. D:\>REG ADD "HKCU\Software\Microsoft\office genuine advantage" /v clave /t reg_sz /d cualquiervalor
  2. Value clave exists, overwrite(Y/N)? y
  3.  
  4. La operación finalizó correctamente
  5.  
  6. D:\>

En tu caso ...

Citar
reg add "HKLM\SYSTEM\ControlSet001\Control\Session Manager\Environment" /v clave /t reg_expand_sz /d valor /f

Saludos


Título: Re: Ayuda con claves de registro abreviadas (uso del símbolo ~)
Publicado por: <ИΘZIЭ(ŦB> en 18 Agosto 2009, 02:32 am
Amigo Novlucker, debo decir que estoy asombrado de ver que ahora sí ha funcionado lo que dices. Por algún motivo, antes me salía mensaje de error. En fin, gracias por el aporte.

Ahora me queda otra duda, aunque esa la daré a conocer abriendo otro tema. No sé cómo asignarle el valor de una variable como valor de una clave.


Título: Re: Ayuda con claves de registro abreviadas (uso del símbolo ~)
Publicado por: Darioxhcx en 18 Agosto 2009, 02:44 am
set /p variable=
Código:
reg add "HKLM\SYSTEM\ControlSet001\Control\Session Manager\Environment" /v %variable% /t reg_expand_sz /d valor /f

si la variable lleva espacios va entre comillas...


Título: Re: Ayuda con claves de registro abreviadas (uso del símbolo ~)
Publicado por: Novlucker en 18 Agosto 2009, 02:48 am
Supuestamente debes de poner la variable con símbolo de porcentaje doble ... algo del estilo %%WINDIR%% ... pero no funciona .. igual lo expande antes de escribirlo en el registro :-\

Código
  1. REG ADD HKLM\Software\MyCo /v Path /t REG_EXPAND_SZ /d %%systemroot%%
  2. Agrega un valor (nombre: Path, tipo: REG_EXPAND_SZ, datos: %systemroot%)
  3. Nota: use porcentaje doble ( %% ) dentro de la cadena expandida


[Edito]
Por lo visto hay algún error con el REG.exe que hace que funciona diferente a como debe, ya que como hemos visto en la ayuda que trae incorporada indica que se tiene que utilizar %% para ingresar la variable a expandir, pero eso no funciona

Sin embargo en technet indica como debe de hacerse realmente

Código
  1. REG ADD HKLM\Software\MyCo /v Path /t REG_EXPAND_SZ /d ^%systemroot^%
:http://technet.microsoft.com/en-us/library/cc742162%28WS.10%29.aspx

Hay que escapar los porcentajes con ^, y así si funciona :P

Saludos


Título: Re: Ayuda con claves de registro abreviadas (uso del símbolo ~)
Publicado por: <ИΘZIЭ(ŦB> en 18 Agosto 2009, 03:11 am
Pana, eso que dices es si quiero que aparezcan los porcentajes en el valor. Ya eso lo he hecho. Lo que yo necesito es colocar el valor de la variable en la clave. Fíjate cómo en la otra pregunta que formulé https://foro.elhacker.net/scripting/como_asigno_el_valor_de_una_variable_en_bach_a_una_clave_de_registro-t264506.0.html