Script por lotes y obtener el valor de salida de una clave encontrada

Script por lotes y obtener el valor de salida de una clave encontrada

Todo funciona bien en un mensaje de CMD, pero necesito colocar un archivo bat para ejecutarlo, pero no puedo obtener el resultado del cmd Reg Query y luego ejecutar otra consulta a partir de ahí.

Dado que lo que estoy buscando es un ID de aplicación y puede cambiar, necesito encontrar el resto de la clave. Lo siguiente en el símbolo del sistema me proporciona lo que necesito:

REG Query HKLM\Software\Microsoft\Windows\CurrentVersion\Uninstall /F "APP_NAME" /E /S

Me da la clave necesaria como por ejemplo:

HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Uninstall\{398E49A0-84CA-43B5-A926-42EF68619E91}

Desde allí puedo ejecutar otro comando para obtener el comando de desinstalación:

REG Query HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Uninstall\{398E49A0-84CA-43B5-A926-42EF68619E91} /V "UninstallString"

He probado lo que he estado viendo en el sitio for \f token....pero no me da solo la primera cadena, ni siquiera con skip. Tampoco he podido asignarlo de alguna manera. Necesito algo como:

set Full_Key = reg query...
set Uninstall_CMD = Full_Key "/V Uninstallstring"

Sé que solo habrá 1 entrada, una vez que se encuentre.

Respuesta1

Después de mucha tarea y de revisar mis libros antiguos, logré que esto funcionara. Publicar código aquí en caso de que alguien necesite desinstalar la misma aplicación que yo en una red o necesite un punto de partida.

El principal problema que tuve que resolver fue encontrar el ID de la aplicación y luego obtener la cadena de desinstalación del registro, ya que no existe un archivo de desinstalación típico.

Puede que no sea el código más atractivo, pero funciona.

rem First Check To See If The App Is Even Installed, In My Case, It May Not Be A Dell Box, Or We Already Uninstalled

REG Query %Computer%HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall /F "Dell SupportAssist" /E /D /S > NUL
Rem If We have Error, It Is Not There, Bail Out
if errorlevel 1 exit
rem The Key Is Found, So It Must Be Installed, So Get The Full Key, By Searching For The App Name
FOR /F "tokens=*" %%A IN ('REG Query %Computer%HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall /F "Dell SupportAssist" /E /D /S 2^>NUL ^| FINDSTR /R /C:"HKEY_"') DO (
rem Now We Have The Full Key From Above, Grab The Uninstall Command And Run It
FOR /F "tokens=2*" %%B IN ('REG Query "%Computer%%%~A" /F UninstallString /V /E ^| FIND /I " UninstallString "') DO %%C% /qn

)

información relacionada