I think the problem is that Product is a ValueName.
If Product is the ValueName, you should be calling it like this:
REG QUERY "HKLM\SOFTWARE\zup" /v Product
this will echo the details of the ValueName Product
There is a problem with your if statement.
IF ERRORLEVEL 0
matches return codes equal to or greater than 0, which will always match.
To check for a missing ValueName use IF ERRORLEVEL 1
Noting that REG has two return code.
0 - Successful
1 - Failed
Here is some example code that checks if notepad has it's statusbar visable.
Notepad is the keyname and statusbar is the ValueName.
@echo off
setlocal
set statusbar=0
set query_command=reg query hkcu\software\microsoft\notepad /v statusbar
:: parse output of reg
for /f "tokens=1,2,3" %%a in ('%query_command%') do (
:: search for line starting with statusbar
if /i "statusbar"=="%%a" (
:: parse hex into int
set /a statusbar=%%c
)
)
if %statusbar% EQU 1 (
echo notepad's status bar is visable
) else (
echo notepad's status bar isn't visable
)
endlocal