Ich möchte den Anzeigenamen von Office 2019 „Microsoft Office Professional Plus 2019 – en-us“ abrufen und wiedergeben.
Ich habe den cmd-Befehl mit dem Powercell-Befehl gefunden.
Powershell /command "Get-ItemProperty HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\ProPlus2019Volume* | Select-Object DisplayName"
DisplayName
-----------
Microsoft Office Professional Plus 2019 - en-us
Wie kann ich es mithilfe der Befehlszeile „for“ erkennen? (Anstelle von Powershell können Sie auch „reg query“ verwenden.)
Antwort1
Vorausgesetzt, Ihre WIRKLICHE Absicht besteht darin, eine Liste der installierten App-Namen unter Verwendung einer Reihe von Mustern für diese Namen zu erhalten, wird dies dies tun. Es wird auch davon ausgegangen, dass die Apps mit den üblichen Methoden installiert wurden, beispielsweise mit einer MSI-Datei oder der Paketverwaltung. [Grinsen]
der Code ...
$PackageProviderList = @(
'msi'
'programs'
)
$TargetAppList = @(
'libreoffice*'
'microsoft visual c*'
)
$FoundAppList = (Get-Package -ProviderName $PackageProviderList -Name $TargetAppList).Name |
Sort-Object
$FoundAppList
die Ausgabe auf meinem System zu diesem Zeitpunkt ...
LibreOffice 7.2 Help Pack (English (United States))
LibreOffice 7.2.2.2
Microsoft Visual C++ 2015-2022 Redistributable (x64) - 14.30.30704
Microsoft Visual C++ 2015-2022 Redistributable (x86) - 14.30.30704
Microsoft Visual C++ 2022 X64 Additional Runtime - 14.30.30704
Microsoft Visual C++ 2022 X64 Minimum Runtime - 14.30.30704
Microsoft Visual C++ 2022 X86 Additional Runtime - 14.30.30704
Microsoft Visual C++ 2022 X86 Minimum Runtime - 14.30.30704
was der Code macht ...
- erstellt eine Liste der gewünschten Providertypen,
von denen ich keine Sachen haben möchtemsu
,nuget
, oderpowershellget
. - erstellt eine Liste der zu suchenden installierten Objekte
und verwendet Platzhalter, damit die Zielnamen nicht im Voraus bekannt sein müssen. - wird ausgeführt
Get-Package
, um eine Liste der passenden Installationen abzurufen - greift die Werte aus
.Name
den Eigenschaften im Ergebnis ab - sortiert die Liste
- speichert das in einer $Var
- zeigt diese Liste auf dem Bildschirm an
Antwort2
set Office2019ProductReg="HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\ProPlus2019Volume - en-us"
for /f "usebackq tokens=1-2*" %%a in (`"reg query %Office2019ProductReg% /v DisplayName|find /i "DisplayName""`) do (
set office_ProductName=%%c
)