在Windows上findApache服务器的path

对于我正在编写的Windows脚本,我需要检测机器是否安装了Apache 2.2,并find应用程序path。

我想到的一个解决scheme是wget http:// localhost:8080 / server-info ,并从中parsing根和configuration文件。 如果服务器不使用端口8080,这将失败

另一个select是调用“sc qc Apache2.2”并parsing返回的string。 如果服务器不作为服务安装,或者使用不同的名称,则会失败。

有没有更好的方法来做到这一点?

如果没有使用安装程序进行安装,没有太多好的选择。 如果他们使用MSI /安装程序,则可以检查注册表:

HKEY_LOCAL_MACHINE\SOFTWARE\Apache Software Foundation\Apache\2.2.2\serverRoot HKEY_CURRENT_USER\SOFTWARE\Apache Software Foundation\Apache\2.2.2\serverRoot 

您也可以检查正在运行的进程列表:

 WMIC PROCESS get Caption,Commandline,Processid 

寻找适当的EXE。 如果由于某种原因需要端口号,请使用netstat并搜索适当的端口。

此外,当你说“一个Windows脚本”,我假设你正在使用一些现代和功能像Windows脚本主机 (我最喜欢)或PowerShell 。 不要打扰批处理文件。

我记得,Apache写了一些注册表项。 如果你知道如何从脚本中读取它们,这可能会有所帮助。