2010-07-09 12 views
7

Ho uno script batch che controlla se esiste una chiave del Registro di sistema e se esiste, aprire Internet Explorer. Quello che voglio ora è ottenere il valore di quella chiave del registro e inserirla nell'URL. Come posso fare questo?Ottieni il valore della chiave del Registro di sistema

@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 

Grazie a tutti per qualsiasi aiuto.

risposta

19

Ecco qui, dovrebbe essere auto esplicativo con i commenti. Fatemi sapere se avete domande.

@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

Grazie, davvero molto utile! :) – Abs

+0

La versione di @esac 'REG.EXE' e la chiave richiesta vengono visualizzate quando eseguite su WinXP SP3, ma lo script funziona :) – BalticMusicFan

+0

Ha qualcosa di simile a questo' (reg query% THEME_REGKEY%/v% THEME_REGVAL% 2> nul || (goto : SETUP_001))> nul' – BalticMusicFan

Problemi correlati