通过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. PHP中对汉字进行UNICODE编码和解码的实现

    <?php /** PHP中对汉字进行UNICODE编码和解码的实现 **/ class Helper_Tool{ //php中的unicode编码转中文 static function uni ...

  2. 【LeetCode】125. Valid Palindrome

    题目: Given a string, determine if it is a palindrome, considering only alphanumeric characters and ig ...

  3. Android高仿qq及微信底部菜单的几种实现方式

    最近项目没那么忙,想着开发app的话,有很多都是重复,既然是重复的,那就没有必要每次都去写,所以就想着写一个app通用的基本框架,这里说的框架不是什么MVC,MVP,MVVM这种,而是app开发的通用 ...

  4. mysql性能监控工具

    参考文档: http://www.linuxidc.com/Linux/2012-09/70459.htm 1.记录慢查询SQL #配置开启 (linux)修改my.cnf: log-slow-que ...

  5. (转载)JProfiler试用手记

    JProfiler是一款Java的性能监控工具.可以查看当前应用的对象.对象引用.内存.CPU使用情况.线程.线程运行情况(阻塞.等待等),同时可以查找应用内存使用得热点,这里提供有几篇文章供参考:获 ...

  6. PHP连接数据库、创建数据库、创建表的三种方式

    这篇博客主要介绍了三种方式来连接MySQL数据库以及创建数据库.创建表.(代码是我在原来的基础上改的) MySQLi - 面向对象 MySQLi - 面向过程 PDO MySQLi 面向对象 < ...

  7. ASP.NET Core之跨平台的实时性能监控

    前言 前面我们聊了一下一个应用程序 应该监控的8个关键位置. . 嗯..地址如下: 应用程序的8个关键性能指标以及测量方法 最后卖了个小关子,是关于如何监控ASP.NET Core的. 今天我们就来讲 ...

  8. ISO18000-6B和ISO18000-6C(EPC C1G2)标准的区别

    ISO18000-6B和ISO18000-6C(EPC C1G2)标准的区别 日期:2009-4-2 22:10:26 目前,有两个标准可供选择.一是ISO18000-6B,另一个是已被ISO接纳为I ...

  9. jsp注册页面验证,easyui的jsp+js表单验证

    1.1下面的代码是写在Js里面的,就直接写进去不用什么其他东西,这样一个表单验证就好了(1.2图) $.extend($.fn.validatebox.defaults.rules, { phone: ...

  10. [AOP系列]Autofac+Castle实现AOP事务

    一.前言 最近公司新项目,需要搭架构进行开发,其中需要保证事务的一致性,经过一番查找,发现很多博文都是通过Spring.Net.Unity.PostSharp.Castle Windsor这些方式实现 ...