Есть ли деинсталляция пакета программ для windows? - PullRequest
9 голосов
/ 03 апреля 2012

У меня есть несколько программ, которые я хочу удалить с моего компьютера (Windows 7 64bit).

Есть ли пакет \ скрипт, который может помочь мне сделать это?или мне нужно сделать это один за другим из панели управления?

Если нет Windows 7, есть ли что-то подобное в XP?

спасибо, Дор.

Ответы [ 4 ]

12 голосов
/ 03 апреля 2012

На самом деле в cmd нет команд типа uninstall, о которых я знаю.Однако вы можете запросить этот ключ reg

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall

(может также потребоваться проверить HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall, если вы работаете на 64-битной машине)

, чтобы найтипрограмма, которую вы хотите удалить.Каждый из них будет иметь значение UninstallString, которое сообщит вам путь к файлу деинсталлятора программ, который вы затем сможете выполнить, вызвав его полный путь и имя файла.

Если деинсталлятор окажется msi, вы можете использовать

msiexec /uninstall /x, чтобы удалить его без вывода сообщений.Я думаю, это примерно столько, сколько вы можете сделать с партией.

Надеюсь, это поможет!

10 голосов
/ 04 апреля 2012

, чтобы дополнить ответ Бали, попробуйте следующий код ...

@echo off
for /f "tokens=*" %%a in ('reg query hklm\software\Microsoft\Windows\CurrentVersion\Uninstall\ ^| find /I "%*"') do (
  for /f "tokens=1,2,*" %%b in ('reg query "%%a" /v UninstallString ^| find /I "UninstallString"') do (
    if /i %%b==UninstallString (
      echo %%d
    )
  )
)

тщательно проверьте его.А затем удалите команду echo.

4 голосов
/ 13 июля 2012

Я написал это сегодня утром.

@Echo off
Echo This is a batch file uninstallation program. 
Echo Run as administrator WMIC will not work. 
echo.
Echo The command [wmic product get name] will run.
Echo Looking up all installed programs...
echo. 
wmic product get name

 echo 1. First program
 echo 2. Second program
 echo 3. Third program
 echo 4. Fourth program
 echo 5. Fifth program
echo.
@echo Pick a number: 
echo. 
 choice /c:12345 

 if "%errorlevel%"=="1" wmic product where name="First program" call uninstall
 if "%errorlevel%"=="2" wmic product where name="Second program" call uninstall
 if "%errorlevel%"=="3" wmic product where name="Third program" call uninstall
 if "%errorlevel%"=="4" wmic product where name="Fourth program" call uninstall
 if "%errorlevel%"=="5" wmic product where name="Fifth program" call uninstall

Echo.
Echo.

@echo First method is done. I'll go into the alternate method. 

pause
Echo Get user input - program name?
Echo.
Echo This is an alternate method 
:input
set INPUT=
set /P INPUT=Uninstall which program?: %=%
if "%INPUT%"=="" goto input
echo Your input was: %INPUT%

echo.
echo.
Echo Uninstalling... 

echo The command [wmic product where name="%INPUT%" call uninstall] will run. 


wmic product where name="%INPUT%" call uninstall

@echo If there is "no instance" errors, then the program %INPUT% was uninstalled.

pause
2 голосов
/ 10 июня 2015

Используйте wmic прямо из терминала.Вы можете посмотреть в документации Microsoft, чтобы узнать больше об использовании.

Это будет отличной отправной точкой:

wmic product where vendor="Autodesk" call uninstall

Я использую приведенную выше строку для очистки от удаления продуктов Autodesk.

...