[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

[其他] [已解]请问如何用批处理判断是否已经安装有IE8、SQL Server 2005

本帖最后由 pcl_test 于 2017-1-6 04:42 编辑

最近用批处理做一个用于安装IE8、SQL2005等合集的小工具,帮助自动安装。

对纯净的电脑已经OK了,但是如果已经安装有上述软件,目前还是继续安装,会导致一些安装错误出现。

所以想要请教下如果判断当前系统是否已经安装有IE8、SQL2005了呢?

有个帖子是如何判断是否安装有VC2005运行库的,实在是看不懂
http://www.bathome.net/thread-7298-1-1.html

这是目前的代码:

@echo 正在进行第4步(共6步):安装【SQL2005 系统支持】,请等待....
@echo 该步骤时间可能会持续10分钟左右,请耐心等待....
start /wait %~dp004.SQL2005/SQLEXPR32_CHS_X86.EXE /qb INSTANCENAME="MSSQL2005" ADDLOCAL=SQL_Engine,Client_Components,Connectivity, SECURITYMODE=SQL SAPWD="1" INSTALLSQLDIR="D:\Program Files\Microsoft SQL Server" INSTALLSQLDATADIR="D:\Program Files\Microsoft SQL Server\DATA" SQLAUTOSTART=1
@echo 正在进行第4步(共6步):安装【SQL2005 管理工具】,请等待....
start /wait %~dp004.SQL2005/SQLServer2005_SSMSEE_X86.msi /passive

@echo 正在进行最后一步(共6步):安装【IE8.0】,请等待....
@echo 【请注意】,本步骤结束后,系统将会提示重启,请在安装结束前保存好已打开的文件....
start /wait %~dp006.IE8/IE8-WindowsXP-x86-CHS.exe /passive /update-no /norestart
1

评分人数

    • Batcher: 感谢给帖子标题标注[已解决]字样PB + 2

[问题已解决问题。
参照了“批处理精确判断统是否已经安装了VC++ 2005或VC++ 2008”这篇文章:http://www.bathome.net/thread-7298-1-1.html
  1. @echo off
  2. ::::: 通过注册表卸载键值判断系统是否已经安装了IE8      
  3. reg query HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\ie8>nul 2>nul&&set ie8=IE 8.0
  4. :::::判断,跳转
  5. if defined ie8 (goto not_ie8install) else (goto ie8Install)
  6. :::::安装
  7. :ie8Install
  8. Cls
  9. @echo. && @echo 安装IE8,请等待....
  10. @echo 【请注意】,本步骤结束后,请按提示输入9重启电脑,重启前保存好已打开的文件....
  11. start /wait %~dp006.IE8/IE8-WindowsXP-x86-CHS.exe
  12. @echo. && @echo 8.IE8已安装完成,按任意键退出
  13. pause
  14. exit
  15. :::::不安装
  16. :not_ie8install
  17. @echo.IE8.0系统已安装,不需要再次安装,按任意键退出
  18. pause
  19. exit
复制代码
其实类似的几乎所有程序都可以用这个办法来判断,只要知道相应程序的注册表卸载键值HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall下面的在哪儿即可,普通程序可以很容易就看出是哪个,还有的是用数字+字母来表示的,如果不知道,可能就要用注册表快照工具,来进行安装前后对比了。

TOP

是啊,想来想去就只有通过注册表里面的键值来判断,但是一是不知道键值在哪儿,二是不知道批处理语法如何写

TOP

通过注册表键值来判断可以吗?

TOP

返回列表