Как получить отображаемое имя реестра Office 2019 с помощью командной строки «For /f delims»

Как получить отображаемое имя реестра Office 2019 с помощью командной строки «For /f delims»

Я хочу получить DisplayName Office 2019 «Microsoft Office Professional Plus 2019 - en-us» и вывести его.

Я нашел команду cmd с помощью команды powercell.

Powershell /command "Get-ItemProperty HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\ProPlus2019Volume* | Select-Object DisplayName"

DisplayName
-----------
Microsoft Office Professional Plus 2019 - en-us

Как получить его с помощью командной строки "for" detect? (Вы также можете использовать "reg query" вместо powershell.)

решение1

Если предположить, что вашим РЕАЛЬНЫМ намерением является получение списка установленных имен приложений с использованием набора шаблонов для этих имен, то это будет сделано. Также предполагается, что приложения были установлены с помощью обычных методов, таких как файл MSI или управление пакетами. [ухмылка]

код ...

$PackageProviderList = @(
    'msi'
    'programs'
    )
$TargetAppList = @(
    'libreoffice*'
    'microsoft visual c*'
    )

$FoundAppList = (Get-Package -ProviderName $PackageProviderList -Name $TargetAppList).Name |
    Sort-Object

$FoundAppList

вывод в моей системе в это время ...

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

что делает код ...

  • создает список желаемых типов поставщиков,
    от которых мне не нужны материалы msu, nuget, или powershellget.
  • создает список установленных объектов для поиска,
    использует подстановочные знаки, чтобы избежать необходимости знать имена целей заранее.
  • запускается Get-Packageдля получения списка соответствующих установок
  • извлекает значения из .Nameсвойств в результате
  • сортирует список
  • сохраняет это в $Var
  • отображает этот список на экране

решение2

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

)

Связанный контент