Is there Uninstall a program batch for windows?
to complement Bali's answer, try the following code...
@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
)
)
)
test it carefully. And then remove the echo
command.
There isn't really an uninstall
command kind of thing in cmd that I know of. You could however query this reg key
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall
(might also need to check HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall
if you're on a 64-bit machine)
to find the program you want to uninstall. Each one will have an UninstallString
value which will tell you the path to the programs uninstaller file which you can then execute by calling it's full path and filename.
If the uninstaller happens to be an msi you can use
msiexec /uninstall /x
to silently uninstall it. This is about as much as you can do with batch I think.
Hope this helps!
I wrote this this morning.
@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