我遇到了编写脚本的任务,该脚本首先在 Windows 服务器上启动 32 位 Websphere MQ 客户端的静默安装。然后检查是否安装成功......所以我写了以下脚本:
@echo off
REM Author : Akshay Sinha
REM Date Created : 07/05/2012
REM Installing Websphere MQ.......
Msiexec /q /i "%CD%\MSI\IBM WebSphere MQ.msi" /l*v .\install.log /m mif_file TRANSFORMS="1033.mst" AGREETOLICENSE="yes"
echo Script to check if the installation failed !!!
echo Waiting for installaion to complete.......
REM Script will wait for 2 mins, This is to ensure that install.log gets fully generated.
ping 123.45.67.89 -n 1 -w 120000 > nul
echo Wait Over
find /C "Installation operation failed" "%CD%"\install.log > tmp.log
for /f "tokens=1,2,3 delims=:" %%a in (tmp.log) DO (
SET /a FOUND_STR=%%c
echo %FOUND_STR%
)
del tmp.log
SET %FOUND_STR%=%FOUND_STR: =%
echo %FOUND_STR%
if %FOUND_STR% EQU 0 (
echo Installation Of MQ completed without any errors!!!!!
EXIT /B 0
)
if %FOUND_STR% GTR 0 (
echo There were errors while installing MQ.. Pls Verify!!!
EXIT /B 1
)
该脚本适用于全新安装。即,如果上述软件尚未安装在系统上。
但是,我需要增强此脚本,以便它应该检查系统中现有的 Websphere MQ 安装及其版本。--如果版本不是我们需要的版本(当然,我将从命令行提供),它应该启动卸载。
问题是我不想使用搜索文件系统的方法。那么如何使用 WMI 类完成此任务。??我查找了 Win32_Product 类,但它只返回了一个已安装的程序(尽管我的系统上安装了 40 个应用程序)。所以我想知道:1)在系统上搜索特定程序的具体方法是什么.(我对 VbScripting 或批处理编程持开放态度) 2)已安装软件的注册表项的值是否在所有系统中保持相同,并且是否因不同的 virsions 而有所不同?
提前致谢。