2010-07-09 25 views
7

Mam skrypt wsadowy, który sprawdza, czy klucz rejestru istnieje, a jeśli istnieje, otwórz program Internet Explorer. Teraz chciałbym uzyskać wartość tego klucza rejestracyjnego i umieścić go w adresie URL. Jak mogę to zrobić?Uzyskaj wartość klucza rejestru

@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 

Dziękuję wszystkim za pomoc.

Odpowiedz

19

Proszę bardzo, wyjaśnienie, komentarze. Daj mi znać, jeśli masz jakieś pytania.

@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

Dziękuję, naprawdę bardzo pomocna! :) – Abs

+0

@esac 'REG.EXE' wersja i żądany klucz pojawia się po uruchomieniu na WinXP SP3, ale skrypt działa :) – BalticMusicFan

+0

Zrobił coś takiego' (reg zapytanie% THEME_REGKEY%/v% THEME_REGVAL% 2> nul || (goto : SETUP_001))> nul' – BalticMusicFan

Powiązane problemy