2012-04-03 27 views
8

Mam kilka programów, które chcę odinstalować z mojego komputera (Windows 7 64bit).Czy odinstaluj program wsadowy dla systemu Windows?

Czy istnieje skrypt wsadowy, który może mi to ułatwić? lub muszę to zrobić jeden po drugim z Panelu sterowania?

Jeśli nie ma systemu Windows 7, czy jest coś takiego w XP?

dzięki, Dor.

+1

Dlaczego nie uruchamiać uninstall.exe dla każdego programu? –

+0

Możesz napisać plik wsadowy, aby znaleźć dezinstalatory w szukanym katalogu. tj.: Wyszukujesz Javę i uruchamiasz plik uninstall.exe w folderze Java. –

+1

Proponuję wypróbować odpowiedź Bali. Wygląda nieco bardziej obiecująco. –

Odpowiedz

12

Naprawdę nie ma takiego polecenia w cmd, które znam. Można jednak zapytać Ten klucz Reg

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall

(można również sprawdzić HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall jeśli jesteś na komputerze 64-bitowym)

znaleźć program, który chcesz odinstalować. Każda z nich będzie miała wartość UninstallString, która wskaże ścieżkę do pliku deinstalatora programów, którą można następnie wykonać, podając pełną ścieżkę i nazwę pliku.

Jeśli uninstaller zdarza się być msi można użyć

msiexec /uninstall /x dyskretnie go odinstalować. To tyle, ile możesz zrobić z partią, o której myślę.

Mam nadzieję, że to pomoże!

+0

^jest to najlepszy sposób na zrobienie tego, o co prosisz, z linii poleceń. – iesou

9

uzupełnienie odpowiedź Bali, spróbuj następujący kod ...

@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 
    ) 
) 
) 

przetestować go uważnie. A następnie usuń polecenie echo.

+0

+1 za pytanie o klucz reg, nie byłem pewien, jak to zrobić. –

3

Napisałem to dziś rano.

@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 
+0

Chociaż wolałbym rozwiązanie 'wmic', wydaje mi się, że większość zainstalowanych aplikacji nie znajduje się na liście' wmic product get name' list. Są one jednak wymienione w rejestrze 'Uninstall'. Sądzę, że w mojej sytuacji potrzebuję innego sugerowanego rozwiązania, w którym sam musisz przeanalizować rejestr. – Qben

+1

linia wmic była naprawdę wszystkim, czego potrzebowałem. Dodaj/nointeractive, aby pominąć wszystkie pytania zadawane podczas procesu. – Christian

2

Użyj wmic bezpośrednio z terminalu. Możesz zajrzeć do dokumentacji Microsoftu, aby zobaczyć więcej zastosowań.

to będzie to świetny punkt wyjścia:

wmic product where vendor="Autodesk" call uninstall 

używam powyższą linię do czyszczenia deinstalacji produktów Autodesk.

+0

Warto wiedzieć, że można również użyć symboli wieloznacznych do takich zapytań, jeśli uzyska się poprawną składnię: 'produkt wmic, gdzie" nazwa taka jak "% SQL Server% '" wywołanie deinstalacji' Czy zrobi to dla wszystkich produktów o nazwach zawierające ciąg "SQL Server". Najprawdopodobniej warto najpierw sprawdzić, na co się ma wpływ, używając czegoś w rodzaju produktu wmic, np. "Nazwa taka jak"% SQL Server% "" lista skrótów " –

Powiązane problemy