
Все отлично работает в командной строке CMD, но мне нужно вставить bat-файл для запуска, но я не могу получить вывод Reg Query cmd, а затем запустить другой запрос из него.
Поскольку мне нужен идентификатор приложения, а он может меняться, мне нужно найти остальную часть ключа. Следующая команда в командной строке даст мне то, что мне нужно:
REG Query HKLM\Software\Microsoft\Windows\CurrentVersion\Uninstall /F "APP_NAME" /E /S
Дает мне нужный ключ, такой как:
HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Uninstall\{398E49A0-84CA-43B5-A926-42EF68619E91}
Оттуда я могу выполнить другую команду, чтобы получить команду удаления:
REG Query HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Uninstall\{398E49A0-84CA-43B5-A926-42EF68619E91} /V "UninstallString"
Я пробовал то, что видел на сайте, for \f token....
но мне не дается только первая строка, даже с пропуском. И я не смог как-то ее назначить. Мне нужно что-то вроде:
set Full_Key = reg query...
set Uninstall_CMD = Full_Key "/V Uninstallstring"
Я знаю, что когда он будет найден, то будет только одна запись.
решение1
После долгой домашней работы и перелопачивания старых книг у меня получилось это. Выкладываю код здесь на случай, если кому-то понадобится удалить то же приложение, что и мне, в сети или понадобится отправная точка.
Основная проблема, которую мне пришлось решить, заключалась в поиске идентификатора приложения, а затем в получении строки удаления из реестра, поскольку типичного файла удаления не существует.
Возможно, это не самый красивый фрагмент кода, но он работает.
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
)