2012-04-03 15 views
8

Ho diversi programmi che voglio disinstallare dal mio computer (Windows 7 a 64 bit).Esiste un batch di programma per Windows?

C'è un batch \ script che può aiutarmi a farlo? o ho bisogno di farlo uno per uno dal Pannello di controllo?

Se non c'è per Windows 7, c'è qualcosa di simile in XP?

grazie, Dor.

+1

Perché non eseguire il file uninstall.exe per ciascun programma? –

+0

È possibile scrivere un file batch per trovare i programmi di disinstallazione in una directory che si cerca. Ad esempio: si cerca Java ed è in esecuzione il file uninstall.exe nella cartella Java. –

+1

Ti suggerisco di provare la risposta di Bali. Sembra un po 'più promettente. –

risposta

12

Non c'è davvero un tipo di comando di comando uninstall in cmd che io conosca. Si potrebbe tuttavia interrogare questa chiave del registro

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall

(potrebbe anche bisogno di controllare HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall se siete su una macchina a 64-bit)

per trovare il programma che si desidera disinstallare. Ognuno avrà un valore UninstallString che indicherà il percorso del file del programma di disinstallazione dei programmi che è possibile eseguire chiamando il percorso completo e il nome file.

Se il programma di disinstallazione sembra essere un MSI è possibile utilizzare

msiexec /uninstall /x per disinstallare silenziosamente. Questo è quanto puoi fare con il batch, credo.

Spero che questo aiuti!

+0

^questo è il modo migliore per fare ciò che chiedi dalla riga di comando. – iesou

9

per integrare la risposta di Bali, provare il seguente codice ...

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

prova con attenzione. Quindi rimuovere il comando echo.

+0

+1 per interrogare la chiave reg, non ero sicuro di come farlo. –

3

Ho scritto questa mattina.

@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

Anche se preferirei la soluzione 'wmic', sembra che per me la maggior parte delle applicazioni installate non sia nella lista di 'wmic product get name'. Sono comunque elencati nella chiave 'Uninstall' nel registro. Credo che nella mia situazione dovrei andare per l'altra soluzione suggerita dove devi analizzare il registro da solo. – Qben

+1

la linea wmic era davvero tutto ciò di cui avevo bisogno. Aggiungi/non interattivo per saltare tutte le domande poste durante il processo. – Christian

2

Utilizzare Wmic direttamente dal terminale. Puoi consultare la documentazione di Microsoft per vedere altri usi.

Questo sarà un ottimo punto di partenza:

wmic product where vendor="Autodesk" call uninstall 

Io uso la linea di cui sopra per pulire prodotti Autodesk disinstallazione.

+0

Potrebbe essere interessante sapere che è possibile utilizzare anche caratteri jolly per tali query se si ottiene la sintassi corretta: 'prodotto wmic dove" nome come '% SQL Server%' "chiamata di disinstallazione' Lo farà per tutti i prodotti con nomi contenente la stringa "SQL Server". Probabilmente è una buona idea per prima cosa controllare che cosa è interessato usando qualcosa come 'prodotto wmic dove" nome come '% SQL Server%' "lista breve –

Problemi correlati