Foro de elhacker.net

Programación => Scripting => Mensaje iniciado por: edunardo en 3 Septiembre 2008, 23:24 pm



Título: Duda para comprobar si existe clave del registro con .bat
Publicado por: edunardo en 3 Septiembre 2008, 23:24 pm
Hola a todos, hace mucho que no programo y tengo alguna duda...

Quiero hacer un bat que me compare el valor de una clave del registro, en caso de que exista se termina el bat en caso de que no la sustituyo...

Se que es con reg add para meterla y con reg query para consultar si existe, pero no se como meter esto dentro del if...

Muchas gracias.


Título: Re: Duda para comprobar si existe clave del registro con .bat
Publicado por: carlitos.dll en 4 Septiembre 2008, 04:45 am
Código
  1. @echo off
  2. reg.exe query "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run" /v "NeroFilterCheck" >NUL 2>&1 && (
  3. ::code en caso de que si exista
  4. echo Si existe
  5. ) || (
  6. :: code en caso de que no exista
  7. echo No existe
  8. )
  9.  



Título: Re: Duda para comprobar si existe clave del registro con .bat
Publicado por: edunardo en 4 Septiembre 2008, 15:41 pm
Gracias carlitos.dll ¡¡¡
Podrias explicarme esta parte?

>NUL 2>&1 &&

Y si no es mucho pedir, se podría meter en un if... es decir...

algo asi como if reg query "xxxxxxxxxxxxxxxxxx
MUCHAS GRACIAS


Título: Re: Duda para comprobar si existe clave del registro con .bat
Publicado por: carlitos.dll en 4 Septiembre 2008, 16:25 pm
es que ese && es como un if y el || es como un else, aunque son operadores lógicos.

Información de redirección:
http://technet.microsoft.com/es-cl/library/bb490982(en-us).aspx
http://www.ss64.com/ntsyntax/redirection.html

Si lo quieres con un if, podrías hacerlo así:

Código
  1. @echo off
  2. reg.exe query "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run" /v "NeroFilterCheck" >NUL 2>&1 && (set /a existe=1) || (set /a existe=0)
  3. if "%existe%"=="1" (
  4. ::code en caso de que si exista
  5. echo Si existe
  6. ) else (
  7. ::code en caso de que no exista
  8. echo No existe
  9. )
  10.