So erhalten Sie den Anzeigenamen der Office 2019-Registrierung mit der Befehlszeile „For /f delims“

So erhalten Sie den Anzeigenamen der Office 2019-Registrierung mit der Befehlszeile „For /f delims“

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öchte msu, nuget, oder powershellget.
  • 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 .Nameden 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

)

verwandte Informationen