@echo off
setlocal enableextensions enabledelayedexpansion
>nul chcp 1251
for /f "usebackq delims=" %%i in (
`reg.exe query "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall"`
) do for /f "usebackq tokens=3*" %%j in (
`reg.exe query "%%~i" /v "DisplayName" 2^>nul ^| find.exe /i "DisplayName"`
) do echo %%~j %%k
>nul chcp 866
endlocal
exit /b 0
reg /?