通过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 Files\Product" :: 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

Bat脚本自动卸载软件-静默执行的更多相关文章

  1. 服务器A制定计划任务,BAT脚本自动备份oracle数据文件,拷贝至服务器B的共享目录。

    运行环境:windows server 2008 R2 目的:在数据库服务器A进行数据库自动备份,并且保留5天. 为了安全,需要在web应用服务器B进行数据库的冗余备份,建立双保险.(保留15天) A ...

  2. C#_自动化测试 (四) 自动卸载软件

    在平常的测试工作中,经常要安装软件,卸载软件,  即繁琐又累.  安装和卸载完全可以做成自动化. 安装软件我们可以通过自动化框架,自动点击Next,来自动安装.  卸载软件我们可以通过msiexec命 ...

  3. bat脚本自动备份文件资源

    1:xcopy命令进行文件拷贝  2:脚本内容: <span style="font-size:18px;">@echo off color 0D MODE con:  ...

  4. python(或BAT脚本)自动执行adb shell以后的命令

    最近在用python做一个小工具,自动执行一些adb shell命令,使用subprocess.Popen来实现.   不过遇到个问题就是执行adb shell后就无法执行后面adb shell里的命 ...

  5. bat脚本自动安装Jmeter&Jdk

    一句话能解决的事情,绝对不要写一篇文章:一篇文章能解决的事情,绝对不要使用各种工具:一个工具能解决的事情,绝对不要跑东跑西…… 文章主要介绍脚本如何下载.安装.配置Jmeter&Jdk. 不多 ...

  6. Windows下bat脚本自动发邮件

    摘要:说明:很多木马会利用自身的程序截取系统敏感文件或信息发往指定的邮箱,而blat并不是木马,它小巧却有强大的发邮件功能,可不要用它做违法事,感觉和木马功能有一拼!下面先看个具体的实例(在blat同 ...

  7. Ubuntu 软件卸载脚本(卸载软件 + 移除配置文件 + 移除依赖项)

    #!/bin/bash function z-apt-uninstall() { if [ ! $1 ] then echo "z-apt-uninstall error: software ...

  8. dpkg:处理 xxx (--configure)时出错解决办法,也可用于卸载软件出错的情况

    dpkg:处理 xxx (--configure)时出错解决办法今早安装nfs时出现问题,找到该文,备份留用.然后在网上找到了这片文章,按步骤走就解决了,中间会提示自动卸载一下,执行那个命令就好了,我 ...

  9. BAT脚本如何自动执行 adb shell 以后的命令

    @echo off echo su > temp.txt echo 其它命令 >> temp.txt adb shell < temp.txt del temp.txt 求问 ...

随机推荐

  1. mybatis 查询 xml list参数

    mybatis 查询 xml list参数: <select id="getByIds" resultType="string" parameterTyp ...

  2. .NET Core 2.0 Preview2 发布汇总

    前言 关于 ASP.NET Core 2.0 的新功能可以查看我的这篇博客. 这篇文章是 Priview2中的一些改进. .NET Core 2.0 - Preview2 Azure 的改进 Dock ...

  3. 网页标题title的闪动提示

    <!DOCTYPE HTML> <html lang="en-US"> <head> <meta charset="UTF-8& ...

  4. 在win7下如何设置计划任务每一分钟执行一次

  5. 关于XML(可扩展标记语言)的基础知识与写法

    XML(Extensible Markup Language) HTML:超文本标记语言,主要用来展示   XML:可扩展标记语言,用来做数据传输XML特点:1.树状结构,有且只有一个根2.标签名自定 ...

  6. 开源 .net license tool, EasyLicense !

    介绍: 过去我常常像是否有一个帮助授权的软件,它可以非常简单的创建license,并且非常容易的验证license. 这是一个非常普通和公共的功能,但是我没有找到合适的开源软件,大部分开源软件都比较复 ...

  7. 二、Solr单机版的搭建

    1.1. 运行环境 solr 需要运行在一个Servlet容器中,Solr4.10.3要求jdk使用1.7以上,Solr默认提供Jetty(java写的Servlet容器),本次使用Tocmat作为S ...

  8. SpringJdbc持久层封装,Spring jdbcTemplate封装,springJdbc泛型Dao,Spring baseDao封装

    SpringJdbc持久层封装,Spring jdbcTemplate封装,springJdbc泛型Dao,Spring baseDao封装 >>>>>>>& ...

  9. Vijos 1012 清帝之惑之雍正 平面最近点对(分治)

    背景 雍正帝胤祯,生于康熙十七年(1678)是康熙的第四子.康熙61年,45岁的胤祯继承帝位,在位13年,死于圆明园.庙号世宗. 胤祯是在康乾盛世前期--康熙末年社会出现停滞的形式下登上历史舞台的.复 ...

  10. JavaScript 原型与继承机制详解

    引言 初识 JavaScript 对象的时候,我以为 JS 是没有继承这种说法的,虽说 JS 是一门面向对象语言,可是面向对象的一些特性在 JS 中并不存在(比如多态,不过严格来说也没有继承).这就困 ...