La méthode la plus simple serait de sortie uniquement les informations directement dans Windows PowerShell, mais qui serait directement contraire aux balises que vous avez appliqué à cette question.
Voici donc un fichier de commandes qui utilise Powershell:
@Echo Off
Set "KP=Software\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall"
PowerShell -C "GP HKLM:\%KP%\*|Select DisplayName,DisplayVersion|FT -A -H"
Pause
Vous pouvez retirer \Wow6432Node
de line 2
si vous ne l'utilisez ceci sur un système d'exploitation 64 bits.
Il est possible pour la sortie DisplayName
à tronquée en raison de leur longueur de caractères et de buffersize de cmd.exe. Cela peut être contourné en utilisant ce qui suit, (éventuellement brut), code:
@Echo Off
Set "KP=Software\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall"
Set/A W=90,H=120
PowerShell -C "&{$H=Get-Host;$R=$H.UI.RawUI;$B=$R.BufferSize;"^
"$W=$R.WindowSize;$B.Width=If (%W% -GT $W.Width) {%W%} Else {$W.Width};"^
"$B.Height=If (%H% -GT $W.Height) {%H%} Else {$W.height};$R.BufferSize=$B};"^
"GP HKLM:\%KP%\*|Select DisplayName,DisplayVersion|FT -A -H"
Pause
Dans le code ci-dessus, vous pouvez régler cette hauteur/largeur sur line 3
selon les besoins, cela peut être nécessaire si vous avez des très longue DisplayName
ou une énorme liste de logiciels installés sous cette clé.