NOTE: See How can I generate a .TSV file containing the software installed on my computer?

Using information and techniques from tips 0034 and 1087, I have scripted Installed.bat to generate a CSV file of all the software listed in the Control Panel / Add/Remove Programs applet. The CSV file contains "Short Name","Display Name".

The syntax for using Installed.bat is:

Installed CSV_Folder

where CSV_Folder can be a local folder or a network share. The actual file is "CSV_Folder\ComputerName.CSV".

NOTE: If you wish to run Installed.bat on all the computers in your domain, use tip 4195, with the CSV_Folder being a network share.

Installed.bat contains:

@echo off
setlocal
if \{%1\}==\{\} goto Syntax
if not exist %1\*.* goto Syntax
set folder=%1
set folder=%folder:"=%
set /a cntrpt=0
if exist "%folder%\%computername%.csv" del /q "%folder%\%computername%.csv"
<font size="-2">regedit /a "%temp%\Installed.reg" "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall"
for /f "Skip=4 Tokens=1,2,7 Delims=\\]=" %%a in ('type "%temp%\Installed.reg"') do set p1=%%a&set p2=%%b&set p3=%%c&call :report</font>
if defined app set app="%app:"=%"
if defined app set app=%app:\[=%
if not defined app set app="%key%"
if defined key set /a cntrpt=%cntrpt% + 1&@echo "%key%",%app%>>"%folder%\%computername%.csv"
if exist "%temp%\Installed.reg" del /q "%temp%\Installed.reg"
@echo %computername% has %cntrpt% report lines.
endlocal
goto :EOF
:Syntax
@echo Syntax: Installed ReportFolder
endlocal
goto :EOF
:report
set p1=%p1:"=%
if "%p1:~0,1%" EQU "\[" goto new
if /i "%p1%" EQU "DisplayName" set app=%p2%
goto :EOF
:new
if defined app set app="%app:"=%"
if defined app set app=%app:\[=%
if not defined app set app="%key%"
if defined key set /a cntrpt=%cntrpt% + 1&@echo "%key%",%app%>>"%folder%\%computername%.csv"
set app=
set key=%p3%