¿Cómo obtener el nombre para mostrar del registro de Office 2019 con la línea de comando "For /f delims"?

¿Cómo obtener el nombre para mostrar del registro de Office 2019 con la línea de comando "For /f delims"?

Quiero obtener el nombre para mostrar de Office 2019 "Microsoft Office Professional Plus 2019 - en-us" y repetirlo.

Encontré el comando cmd usando el comando powercell.

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

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

¿Cómo obtenerlo usando la línea de comando "para" detectar? (También puede utilizar "consulta de registro" en lugar de powershell).

Respuesta1

suponiendo que su intención REAL es obtener una lista de nombres de aplicaciones instaladas utilizando un conjunto de patrones para esos nombres, esto lo hará. También supone que las aplicaciones se instalaron mediante los métodos habituales, como con un archivo MSI o administración de paquetes. [sonrisa]

el código ...

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

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

$FoundAppList

la salida en mi sistema en este momento...

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

qué hace el código...

  • crea una lista de los tipos de proveedores deseados
    de los que no quería cosas msu, nugeto powershellget.
  • crea una lista de cosas instaladas para buscar y
    utiliza comodines para evitar tener que conocer los nombres de los objetivos de antemano.
  • se ejecuta Get-Packagepara obtener una lista de instalaciones coincidentes
  • toma los valores de .Namelas propiedades en el resultado
  • ordena la lista
  • almacena eso en un $Var
  • muestra esa lista en la pantalla

Respuesta2

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

)

información relacionada