Foro de elhacker.net

Programación => Programación General => Mensaje iniciado por: RsEG en 18 Febrero 2014, 15:17 pm



Título: Batch y Registros
Publicado por: RsEG en 18 Febrero 2014, 15:17 pm
Hola gente, soy nuevo en esto y estoy teniendo un problema con un .bat que estoy programando.

En mi trabajo nos conectamos a servidores externos mediante putty, pero cuando el acceso ssh cambia en un servidor, debo cambiar a mano la IP de todas las PC. Se me ocurrio hacer un .bat en mi pc que exporte los registros de sesiones de putty a una carpeta compartida y un bat en el resto de las pc que tome de esta carpeta los registros actualizados.
El problema se me da en el primer .bat:

Cuando comence usaba esta ruta:

HKCU\Software\SimonTatham\PuTTY\Sessions

Exportaba el archivo, lo copiaba a la carpeta compartida, y el resto actualizaba sin problemas. El inconveniente se dio cuando, quise exportar sesion por sesion, para evitar que ciertas configuraciones personalizadas de sesiones internas se vean afectadas (Los clientes tienen fondo negro y letras blancas, los internos son personalizados dependiendo del usuario).
Entonces me dedique a exportar solo ciertas sesiones. Pero me encontre con un problema que no pude resolver. Busque por todos lados pero no encontre nada puntual para mi caso. La ruta es semejante a la siguiente:

HKCU\Software\SimonTatham\PuTTY\Sessions\CIA%20-%20Cliente

En la sesion de Putty esta asi:

CIA - Cliente

Esos espacios, me estan complicando la existencia ya que por una cuestion estetica y de costumbre no puedo sacarselos sin oir quejas.

Les muestro la sintaxis que probe hasta el momento

****************************************************
REG EXPORT HKCU\Software\SimonTatham\PuTTY\Sessions\CIA%20-%20Cliente "C:\Registros"
****************************************************
REG EXPORT "HKCU\Software\SimonTatham\PuTTY\Sessions\CIA%20-%20Cliente" "C:\Registros"
****************************************************
REGEDIT /E C:\Registros\cliente.reg HKCU\Software\SimonTatham\PuTTY\Sessions\CIA%20-%20Cliente
****************************************************
REGEDIT /E C:\Registros\cliente.reg "HKCU\Software\SimonTatham\PuTTY\Sessions\CIA%20-%20Cliente"
****************************************************

En todos estos casos me da error de sintaxis:

ERROR: sintaxis incorrecta.
Escriba "REG EXPORT /?" para obtener detalles de uso.


Espero que alguien pueda ayudarme con este tema. Gracias.-


Título: Re: Batch y Registros
Publicado por: Eleкtro en 18 Febrero 2014, 20:59 pm
El caracter "%" es un símbolo reservado por el sistema (para las %variables%), pero, además de esto, el espacio escrito en la ruta del regedit (%20) entra en conflicto con la variable especial "%2" de Batch, por eso te da error.

Para corregirlo, encierra el string y escapa el caracter conflictivo (duplicándolo):

Código
  1. @Echo OFF
  2.  
  3. Set "Output=%HomeDrive%\Registros\Cliente.reg"
  4. Set "Key=HKCU\Software\SimonTatham\PuTTY\Sessions\CIA%%20-%%20Cliente"
  5.  
  6. Reg Export "%Key%" "%Output%"
  7.  
  8. Pause&Exit

Saludos


Título: Re: Batch y Registros
Publicado por: RsEG en 20 Febrero 2014, 21:37 pm
Muchas pero muchas pero muchas gracias!
Funciona de 10!
Gracias por resolverlo, y por la explicacion.
Muchas gracias Eleкtro!