:GetRegValue Key Value Data Type -- returns a registry value :: -- Key [in] - registry key :: -- Value [in] - registry value :: -- Data [out] - return variable for Data :: -- Type [out] - return variable for Type, i.e.: REG_SZ, REG_MULTI_SZ, REG_DWORD_BIG_ENDIAN, REG_DWORD, REG_BINARY, REG_DWORD_LITTLE_ENDIAN, REG_NONE, REG_EXPAND_SZ SETLOCAL ENABLEDELAYEDEXPANSION set Key=%~1 set Val=%~2 if "%Val%"=="" (set v=/ve) ELSE set v=/v "%Val%" set Data= set Type= for /f "tokens=2,* delims= " %%a in ('reg query "%Key%" %v%^|findstr /b "....%match%"') do ( set Type=%%a set Data=%%b ) ( ENDLOCAL & REM RETURN VALUES IF "%~3" NEQ "" (SET %~3=%Data%) ELSE echo.%Data% IF "%~4" NEQ "" (SET %~4=%Type%) ) EXIT /b