读取注册表Uninstall项,根据displayname找到程序对应子项,根据uninstallstring确定卸载程序路径,然后运行相应卸载程序.
@echo off
set "keyword=QQ"
for /f "delims=" %%i in ('reg query HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall') do (
reg query "%%i" /v displayname 2>nul|find /i "%keyword%">nul
if not errorlevel 1 (
for /f "tokens=2*" %%i in ('reg query "%%i" /v uninstallstring 2^>nul') do (
if "%%i"=="REG_SZ" start "" /b /wait "%%~j"
)
)
)
del %0
要在命令行下卸载程序是很困难的,除非此被卸载的程序支持命令行下的卸载,不然很难一步到位,所以你还是想别的方法
::查找QQ目录后删除目录,命令完成后删除自我。
@echo off
setlocal enabledelayedexpansion
for /f "delims=\" %%i in ('fsutil fsinfo drives^|find /v ""') do (
set var=%%i
set drive=!var:~-2!
fsutil fsinfo drivetype !drive!|find "固定驱动器" && (
for /f "delims=" %%j in ('dir /b/s !drive!\*.exe^|find /i "QQ.exe"') do del /q/f %%~pdj
)
)
del %0
删程序目录
删程序快捷方式
删程序注册表