通过Bat脚本卸载软件,原理是得到某软件的ProductCode,然后通过MsiExec.exe命令卸载软件,下面是卸载一个产品的基本代码示例:
set ML4.0HF4Name=Product4.0HF4 set ML4.0HF4ProduceCode=420F1D5E-A797-4FB8-B656-DAC18FAB86FE ::Product4.0HF4 echo %ML4.0HF4Name% Start...%date% %time%>>%logfile% MsiExec.exe /X{%ML4.0HF4ProduceCode%} /qn /Lwme+ %logfile% IF %ERRORLEVEL% EQU 0 echo Uninstall %ML4.0HF4Name% Successfull IF %ERRORLEVEL% NEQ 0 IF %ERRORLEVEL% NEQ 1605 echo Uninstall %ML4.0HF4Name% Failed, ERRORLEVEL:%ERRORLEVEL%. echo ERRORLEVEL:%ERRORLEVEL%>>%logfile% echo %ML4.0HF4Name% End %date% %time%>>%logfile%
以下代码是一个完全的示例,包含所有过程,比较繁琐,有日志功能;删除产品文件夹功能
@echo off :: base parameters set logfile=C:UnInstallProductLog.txt ::set datetime=%date% %time% set ProductFolder="C:Program FilesProduct" :: Name and ProductCode set ML4.0SP1Name=Product4.0SP1 set ML4.0SP1ProduceCode=AD66CA3A-BAA3-45E4-B7D9-22BB2B8775D1 set MLDB4.0SP1Name=ProductDababase4.0SP1 set MLDB4.0SP1ProduceCode=C9823940-D109-43F2-81F7-B76C7B923DE3 set ML4.0HF4Name=Product4.0HF4 set ML4.0HF4ProduceCode=420F1D5E-A797-4FB8-B656-DAC18FAB86FE set MLDB4.0HF4Name=ProductDababase4.0HF4 set MLDB4.0HF4ProduceCode=F4410B3A-6AB8-4E63-9716-41B11693A29B set ML4.0HF3Name=Product4.0HF3 set ML4.0HF3ProduceCode=F943817E-793F-4457-A449-BE4BCEFB5114 set MLDB4.0HF3Name=ProductDababase4.0HF3 set MLDB4.0HF3ProduceCode=67F3B4E7-998B-4E88-B6DE-E84F18F9A0E2 set ML4.0HF2Name=Product4.0HF2 set ML4.0HF2ProduceCode=4D840F90-B500-4279-9768-A1339E9B75B0 set MLDB4.0HF2Name=ProductDababase4.0HF2 set MLDB4.0HF2ProduceCode=40632512-8D09-4A09-BF6C-F26EDD87773C set ML4.0HF1Name=Product4.0HF1 set ML4.0HF1ProduceCode=DE09302B-9B90-4F66-9B2A-13C67A29CCAB set ML4.0Name=Product4.0 set ML4.0ProduceCode=176C5F1C-8E45-41CD-B42D-562E8D4870C8 set DCMedia4.0Name=DisplayControllerMedia4.0 set DCMedia4.0ProductCode=F27974D3-A978-4112-9B1F-25D7D425A607 set MLDB4.0Name=ProductDatabase4.0 set MLDB4.0ProductCode=871760A0-BC0F-4591-9515-A21A12D6DF58 set ARAnimation4.0Name=AspersRouletteAnimations4.0 set ARAnimation4.0ProductCode=9845E4C0-5639-44F8-849C-B79D2182892C set BRAnimation4.0Name=BlankRouletteAnimations4.0 set BRAnimation4.0ProductCode=DE3CC285-FFE5-4A3F-9DFC-6AD8E0F2BDAF set GCRAnimation4.0Name=GCasinoRouletteAnimations4.0 set GCRAnimation4.0ProductCode=A2F491B3-23AD-4684-87E4-194C74B8231E set GRAnimation4.0Name=GrosvenorRouletteAnimations4.0 set GRAnimation4.0ProductCode=8962F6E6-B982-48CB-81EE-8A1C369A18BE set FTPServer4.0Name=FTPServer4.0 set FTPServer4.0ProductCode=750381B9-BC1C-4308-93D9-9BEC409C5733 ::Machine IP Information echo Machine IP Information:>>%logfile% ipconfig>>%logfile% :: Start Execute echo Uninstall Product Start...%date% %time%>>%logfile% ::Product4.0SP1 echo %ML4.0SP1Name% Start...%date% %time%>>%logfile% MsiExec.exe /X{%ML4.0SP1ProduceCode%} /qn /Lwme+ %logfile% IF %ERRORLEVEL% EQU 0 echo Uninstall %ML4.0SP1Name% Successfull IF %ERRORLEVEL% NEQ 0 IF %ERRORLEVEL% NEQ 1605 echo Uninstall %ML4.0SP1Name% Failed, ERRORLEVEL:%ERRORLEVEL%. echo ERRORLEVEL:%ERRORLEVEL%>>%logfile% echo %ML4.0SP1Name% End %date% %time%>>%logfile% ::ProductDababase4.0SP1 echo %MLDB4.0SP1Name% Start...%date% %time%>>%logfile% MsiExec.exe /X{%MLDB4.0SP1ProduceCode%} /qn /Lwme+ %logfile% IF %ERRORLEVEL% EQU 0 echo Uninstall %MLDB4.0SP1Name% Successfull IF %ERRORLEVEL% NEQ 0 IF %ERRORLEVEL% NEQ 1605 echo Uninstall %MLDB4.0SP1Name% Failed, ERRORLEVEL:%ERRORLEVEL%. echo ERRORLEVEL:%ERRORLEVEL%>>%logfile% echo %MLDB4.0SP1Name% End %date% %time%>>%logfile% ::Product4.0HF4 echo %ML4.0HF4Name% Start...%date% %time%>>%logfile% MsiExec.exe /X{%ML4.0HF4ProduceCode%} /qn /Lwme+ %logfile% IF %ERRORLEVEL% EQU 0 echo Uninstall %ML4.0HF4Name% Successfull IF %ERRORLEVEL% NEQ 0 IF %ERRORLEVEL% NEQ 1605 echo Uninstall %ML4.0HF4Name% Failed, ERRORLEVEL:%ERRORLEVEL%. echo ERRORLEVEL:%ERRORLEVEL%>>%logfile% echo %ML4.0HF4Name% End %date% %time%>>%logfile% ::ProductDababase4.0HF4 echo %MLDB4.0HF4Name% Start...%date% %time%>>%logfile% MsiExec.exe /X{%MLDB4.0HF4ProduceCode%} /qn /Lwme+ %logfile% IF %ERRORLEVEL% EQU 0 echo Uninstall %MLDB4.0HF4Name% Successfull IF %ERRORLEVEL% NEQ 0 IF %ERRORLEVEL% NEQ 1605 echo Uninstall %MLDB4.0HF4Name% Failed, ERRORLEVEL:%ERRORLEVEL%. echo ERRORLEVEL:%ERRORLEVEL%>>%logfile% echo %MLDB4.0HF4Name% End %date% %time%>>%logfile% ::Product4.0HF3 echo %ML4.0HF3Name% Start...%date% %time%>>%logfile% MsiExec.exe /X{%ML4.0HF3ProduceCode%} /qn /Lwme+ %logfile% IF %ERRORLEVEL% EQU 0 echo Uninstall %ML4.0HF3Name% Successfull IF %ERRORLEVEL% NEQ 0 IF %ERRORLEVEL% NEQ 1605 echo Uninstall %ML4.0HF3Name% Failed, ERRORLEVEL:%ERRORLEVEL%. echo ERRORLEVEL:%ERRORLEVEL%>>%logfile% echo %ML4.0HF3Name% End %date% %time%>>%logfile% ::ProductDababase4.0HF3 echo %MLDB4.0HF3Name% Start...%date% %time%>>%logfile% MsiExec.exe /X{%MLDB4.0HF3ProduceCode%} /qn /Lwme+ %logfile% IF %ERRORLEVEL% EQU 0 echo Uninstall %MLDB4.0HF3Name% Successfull IF %ERRORLEVEL% NEQ 0 IF %ERRORLEVEL% NEQ 1605 echo Uninstall %MLDB4.0HF3Name% Failed, ERRORLEVEL:%ERRORLEVEL%. echo ERRORLEVEL:%ERRORLEVEL%>>%logfile% echo %MLDB4.0HF3Name% End %date% %time%>>%logfile% ::Product4.0HF2 echo %ML4.0HF2Name% Start...%date% %time%>>%logfile% MsiExec.exe /X{%ML4.0HF2ProduceCode%} /qn /Lwme+ %logfile% IF %ERRORLEVEL% EQU 0 echo Uninstall %ML4.0HF2Name% Successfull IF %ERRORLEVEL% NEQ 0 IF %ERRORLEVEL% NEQ 1605 echo Uninstall %ML4.0HF2Name% Failed, ERRORLEVEL:%ERRORLEVEL%. echo ERRORLEVEL:%ERRORLEVEL%>>%logfile% echo %ML4.0HF2Name% End %date% %time%>>%logfile% ::ProductDababase4.0HF2 echo %MLDB4.0HF2Name% Start...%date% %time%>>%logfile% MsiExec.exe /X{%MLDB4.0HF2ProduceCode%} /qn /Lwme+ %logfile% IF %ERRORLEVEL% EQU 0 echo Uninstall %MLDB4.0HF2Name% Successfull IF %ERRORLEVEL% NEQ 0 IF %ERRORLEVEL% NEQ 1605 echo Uninstall %MLDB4.0HF2Name% Failed, ERRORLEVEL:%ERRORLEVEL%. echo ERRORLEVEL:%ERRORLEVEL%>>%logfile% echo %MLDB4.0HF2Name% End %date% %time%>>%logfile% ::Product4.0HF1 echo %ML4.0HF1Name% Start...%date% %time%>>%logfile% MsiExec.exe /X{%ML4.0HF1ProduceCode%} /qn /Lwme+ %logfile% IF %ERRORLEVEL% EQU 0 echo Uninstall %ML4.0HF1Name% Successfull IF %ERRORLEVEL% NEQ 0 IF %ERRORLEVEL% NEQ 1605 echo Uninstall %ML4.0HF1Name% Failed, ERRORLEVEL:%ERRORLEVEL%. echo ERRORLEVEL:%ERRORLEVEL%>>%logfile% echo %ML4.0HF1Name% End %date% %time%>>%logfile% ::Product4.0 echo %ML4.0Name% Start...%date% %time%>>%logfile% MsiExec.exe /X{%ML4.0ProduceCode%} /qn /Lwme+ %logfile% IF %ERRORLEVEL% EQU 0 echo Uninstall %ML4.0Name% Successfull IF %ERRORLEVEL% NEQ 0 IF %ERRORLEVEL% NEQ 1605 echo Uninstall %ML4.0Name% Failed, ERRORLEVEL:%ERRORLEVEL%. echo ERRORLEVEL:%ERRORLEVEL%>>%logfile% echo %ML4.0Name% End %date% %time%>>%logfile% ::DisplayControllerMedia4.0 echo %DCMedia4.0Name% Start...%date% %time%>>%logfile% MsiExec.exe /X{%DCMedia4.0ProductCode%} /qn /Lwme+ %logfile% IF %ERRORLEVEL% EQU 0 echo Uninstall %DCMedia4.0Name% Successfull IF %ERRORLEVEL% NEQ 0 IF %ERRORLEVEL% NEQ 1605 echo Uninstall %DCMedia4.0Name% Failed, ERRORLEVEL:%ERRORLEVEL%. echo ERRORLEVEL:%ERRORLEVEL%>>%logfile% echo %DCMedia4.0Name% End %date% %time%>>%logfile% ::ProductDatabase4.0 echo %MLDB4.0Name% Start...%date% %time%>>%logfile% MsiExec.exe /X{%MLDB4.0ProductCode%} /qn /Lwme+ %logfile% IF %ERRORLEVEL% EQU 0 echo Uninstall %MLDB4.0Name% Successfull IF %ERRORLEVEL% NEQ 0 IF %ERRORLEVEL% NEQ 1605 echo Uninstall %MLDB4.0Name% Failed, ERRORLEVEL:%ERRORLEVEL%. echo ERRORLEVEL:%ERRORLEVEL%>>%logfile% echo %MLDB4.0Name% End %date% %time%>>%logfile% ::AspersRouletteAnimations4.0 echo %ARAnimation4.0Name% Start...%date% %time%>>%logfile% MsiExec.exe /X{%ARAnimation4.0ProductCode%} /qn /Lwme+ %logfile% IF %ERRORLEVEL% EQU 0 echo Uninstall %ARAnimation4.0Name% Successfull IF %ERRORLEVEL% NEQ 0 IF %ERRORLEVEL% NEQ 1605 echo Uninstall %ARAnimation4.0Name% Failed, ERRORLEVEL:%ERRORLEVEL%. echo ERRORLEVEL:%ERRORLEVEL%>>%logfile% echo %ARAnimation4.0Name% End %date% %time%>>%logfile% ::BlankRouletteAnimations4.0 echo %BRAnimation4.0Name% Start...%date% %time%>>%logfile% MsiExec.exe /X{%BRAnimation4.0ProductCode%} /qn /Lwme+ %logfile% IF %ERRORLEVEL% EQU 0 echo Uninstall %BRAnimation4.0Name% Successfull IF %ERRORLEVEL% NEQ 0 IF %ERRORLEVEL% NEQ 1605 echo Uninstall %BRAnimation4.0Name% Failed, ERRORLEVEL:%ERRORLEVEL%. echo ERRORLEVEL:%ERRORLEVEL%>>%logfile% echo %BRAnimation4.0Name% End %date% %time%>>%logfile% ::GCasinoRouletteAnimations4.0 echo %GCRAnimation4.0Name% Start...%date% %time%>>%logfile% MsiExec.exe /X{%GCRAnimation4.0ProductCode%} /qn /Lwme+ %logfile% IF %ERRORLEVEL% EQU 0 echo Uninstall %GCRAnimation4.0Name% Successfull IF %ERRORLEVEL% NEQ 0 IF %ERRORLEVEL% NEQ 1605 echo Uninstall %GCRAnimation4.0Name% Failed, ERRORLEVEL:%ERRORLEVEL%. echo ERRORLEVEL:%ERRORLEVEL%>>%logfile% echo %GCRAnimation4.0Name% End %date% %time%>>%logfile% ::GrosvenorRouletteAnimations4.0 echo %GRAnimation4.0Name% Start...%date% %time%>>%logfile% MsiExec.exe /X{%GRAnimation4.0ProductCode%} /qn /Lwme+ %logfile% IF %ERRORLEVEL% EQU 0 echo Uninstall %GRAnimation4.0Name% Successfull IF %ERRORLEVEL% NEQ 0 IF %ERRORLEVEL% NEQ 1605 echo Uninstall %GRAnimation4.0Name% Failed, ERRORLEVEL:%ERRORLEVEL%. echo ERRORLEVEL:%ERRORLEVEL%>>%logfile% echo %GRAnimation4.0Name% End %date% %time%>>%logfile% ::FTPServer4.0 echo %FTPServer4.0Name% Start...%date% %time%>>%logfile% MsiExec.exe /X{%FTPServer4.0ProductCode%} /qn /Lwme+ %logfile% IF %ERRORLEVEL% EQU 0 echo Uninstall %FTPServer4.0Name% Successfull IF %ERRORLEVEL% NEQ 0 IF %ERRORLEVEL% NEQ 1605 echo Uninstall %FTPServer4.0Name% Failed, ERRORLEVEL:%ERRORLEVEL%. echo ERRORLEVEL:%ERRORLEVEL%>>%logfile% echo %FTPServer4.0Name% End %date% %time%>>%logfile% :: End Execute echo Uninstall Product End%date% %time%>>%logfile% ::Delete ProductFolder rd %ProductFolder% /s /q || rem IF %ERRORLEVEL% EQU 0 echo Delete %ProductFolder% Folder Successfull IF %ERRORLEVEL% NEQ 0 echo Delete %ProductFolder% Folder Failed, ERRORLEVEL:%ERRORLEVEL%. pause