2010-07-09 14 views
7

Tengo un script por lotes que comprueba si existe una clave de registro y, si existe, abre el explorador de Internet. Lo que ahora quiero hacer es obtener el valor de esa clave de registro y ponerla en la URL. ¿Cómo puedo hacer esto?Obtiene el valor de la clave de registro

@echo off 
reg query HKLM\Software\Test\Monitor\Settings 
if errorlevel 1 goto not_exist 
goto exist 

:not_exist 

:exist 
start "Test" "%ProgramFiles%\Internet Explorer\iexplore.exe" http://localhost:/dashboard.php 

Gracias por cualquier ayuda.

Respuesta

19

Aquí tienes, debería ser auto explicativo con comentarios. Hazme saber si tienes alguna pregunta.

@echo off 

set THEME_REGKEY=HKLM\Software\Microsoft\Windows\CurrentVersion\Themes 
set THEME_REGVAL=ThemeName 

REM Check for presence of key first. 
reg query %THEME_REGKEY% /v %THEME_REGVAL% 2>nul || (echo No theme name present! & exit /b 1) 

REM query the value. pipe it through findstr in order to find the matching line that has the value. only grab token 3 and the remainder of the line. %%b is what we are interested in here. 
set THEME_NAME= 
for /f "tokens=2,*" %%a in ('reg query %THEME_REGKEY% /v %THEME_REGVAL% ^| findstr %THEME_REGVAL%') do (
    set THEME_NAME=%%b 
) 

REM Possibly no value set 
if not defined THEME_NAME (echo No theme name present! & exit /b 1) 

REM replace any spaces with + 
set THEME_NAME=%THEME_NAME: =+% 

REM open up the default browser, searching google for the theme name 
start http://www.google.com/search?q=%THEME_NAME% 
+0

¡Gracias, realmente muy útil! :) – Abs

+0

@esac La versión 'REG.EXE' y la clave solicitada aparecen cuando se ejecutan en WinXP SP3, pero el script funciona :) – BalticMusicFan

+0

Hizo algo como esto' (reg query% THEME_REGKEY%/v% THEME_REGVAL% 2> nul || (goto : SETUP_001))> nul' – BalticMusicFan

Cuestiones relacionadas