Как с помощью командой строки удалить приложение из системы

Автор оригинала: Bill Lin's
  • Перевод
Допустим у вас есть приложение, которое было установлено через MSI. И вы знаете только имя приложения (в данном случае, только первую часть названия). Для использования команды MSIEXEC требуется, чтобы вы знали GUID, но все программы имеют разные GUID, более того, даже разные версии программы могут иметь различный GUID. И вот решение, которое придумал Bill Lin's: он перебирает ключи реестра, чтобы получить этот самый GUID, у которого DisplayName начинается с определенного имени.



Ниже приведен пример, который удаляет все установленные приложения, названия которых начинается с «Windows Live ID Sign-in Assistant»
for /f "tokens=7 delims=\" %%i in ('reg query HKLM\Software\Microsoft\Windows\CurrentVersion\Uninstall ^| FIND "{"') do 
(
  for /f "tokens=2,*" %%j in ('reg query HKLM\Software\Microsoft\Windows\CurrentVersion\Uninstall\%%i /v DisplayName') do 
  (
    set dn=%%k
    if "!dn:~0,33!"=="Windows Live ID Sign-in Assistant" 
    (
      echo Uninstalling Windows Live ID Sign-in Assistant
      msiexec /promptrestart /qb /x %%i /L+*v %TEMP%\wlidsvc.log
      if %ERRORLEVEL% NEQ 0 echo Uninstallation failed. Check the log %TEMP%\wlidsvc.log
    )
  )
)
Поделиться публикацией

Комментарии 4

    +5
    Консоль != DOS
      0
      В оригинальной статье так названо, поэтому решил название сохранить
        0
        Название обновил, надеюсь такой заголовок будет более понятнее о содержимом статьи
        0
        Круть! Вот это вообще отличное решение. Я на работе удалял старые версии одного специфического приложения тупо указывая на установочный MSI-файл с ключом /x. Но по описанному методу можно намного гибче работать с приложениями. Спасибо, утянул код :)

        Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.