batch file默默安装多个程序

我想创build一个batch file,将顺序安装多个程序。 我可以在batch file中使用以下代码按顺序安装所需的软件:

@echo off "Path/software1.exe" "Path/software2.exe" "Path/software3.exe" "Path/software4.exe" 

要么

 @echo off start /wait "Path/software1.exe" start /wait "Path/software2.exe" start /wait "Path/software3.exe" start /wait "Path/software4.exe" 

但在安装任何软件之前,我想检查它是否已经安装。

我尝试使用以下两种方法获取已安装软件的列表:

 wmic product get name 

要么

 reg export HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall temp.txt /y 

但是,那么我将不得不searchstring,这是不可行的。 因此,我想知道他们是否有任何命令来检查一个特定的应用程序是否安装或不使用batch file? 提前致谢。

没有正式的方法来检查是否安装了应用程序。 安装程序,大部分,只是复制文件,设置注册表项,并添加开始菜单快捷方式没有注册任何与Windows说,我安装。

查看是否安装应用程序的通用方法是查看是否在“控制面板”的“添加/删除程序”小程序中有条目。 ARP中的每个条目都可以在注册表中找到: Software\Microsoft\Windows\CurrentVersion\Uninstall (HKEY_CURERNT_USER和HKEY_LOCAL_MACHINE)

如果它是基于MSI的安装程序,那么您可能会编写一些代码,以查看是否使用MSI API安装了功能ID或组件ID。 我不知道如何在BAT文件中调用这些函数,而无需编译一些帮助程序。

你只是拿条件

如果不存在“C:\ Program Files \ software1”
“路径/ software1.exe”

如果不存在“C:\ Program Files \ software2”
“路径/ software2.exe”

如果不存在“C:\ Program Files \ software3”
“路径/ software3.exe”

如果不存在“C:\ Program Files \ software4”
“路径/ software4.exe”