【问题标题】:Check if a program exists and if not to install it检查程序是否存在,如果不安装它
【发布时间】:2016-03-18 06:55:36
【问题描述】:

我正在使用 NSIS 文件编写 Jenkins 构建。我需要一个脚本来检查设备上是否安装了某个程序,如果没有,它应该从安装程序文件夹安装 .exe。我有安装程序工作所需的安装文件夹中的所有 .exe。

这应该很简单,但我在这种情况下感到困惑,无法在任何地方找到任何有关此的信息。

【问题讨论】:

    标签: bash shell jenkins nsis


    【解决方案1】:

    我想您使用的是 windows 环境。您可以编写一个 powershell 脚本来检查它:

    Get-ItemProperty HKLM:\Software\Microsoft\Windows\CurrentVersion\Uninstall\* |  Select-Object DisplayName | Select-String 'Microsoft Visual C\+\+'
    

    这将列出所有已安装的 Visual C++ Redistributables

    在我的机器上是这样的:

    @{DisplayName=Microsoft Visual C++ 2005 Redistributable (x64)}
    @{DisplayName=Microsoft Visual C++ 2010  x64 Redistributable - 10.0.40219}
    @{DisplayName=Microsoft Visual C++ 2012 x64 Additional Runtime - 11.0.61030}
    @{DisplayName=Microsoft Visual C++ 2008 Redistributable - x64 9.0.30729.6161}
    @{DisplayName=Microsoft Visual C++ 2005 Redistributable (x64)}
    @{DisplayName=Microsoft Visual C++ 2008 Redistributable - x64 9.0.30729.17}
    @{DisplayName=Microsoft Visual C++ 2013 x64 Additional Runtime - 12.0.21005}
    @{DisplayName=Microsoft Visual C++ 2013  x64 Designtime - 12.0.21005}
    @{DisplayName=Microsoft Visual C++ 2015 x64 Debug Runtime - 14.0.23506}
    @{DisplayName=Microsoft Visual C++ 2015 x64 Minimum Runtime - 14.0.23506}
    @{DisplayName=Microsoft Visual C++ 2013 x64 Minimum Runtime - 12.0.21005}
    @{DisplayName=Microsoft Visual C++ 2012 x64 Debug Runtime - 11.0.60610}
    @{DisplayName=Microsoft Visual C++ 2005 Redistributable (x64)}
    @{DisplayName=Microsoft Visual C++ 2015 x64 Additional Runtime - 14.0.23506}
    @{DisplayName=Microsoft Visual C++ 2013 x64 Debug Runtime - 12.0.21005}
    @{DisplayName=Microsoft Visual C++ 2012 x64 Minimum Runtime - 11.0.61030}
    

    因此,如果您要检查的程序名为 ProgramWithName,只需使用:

    Get-ItemProperty HKLM:\Software\Microsoft\Windows\CurrentVersion\Uninstall\* |  Select-Object DisplayName | Select-String ProgramWithName
    

    如果您想知道是否安装了 SQL Server,请使用:

    Get-ItemProperty HKLM:\Software\Microsoft\Windows\CurrentVersion\Uninstall\* |  Select-Object DisplayName | Select-String 'Microsoft SQL Server 2014 Express'
    

    这给了你在我的机器上:

    @{DisplayName=Microsoft SQL Server 2014 Express LocalDB }
    

    【讨论】:

    • 但是,如果我希望脚本检查是否安装了 SQL,如果没有,我希望脚本运行文件夹中的 .exe 怎么办?但这个答案肯定适用于我拥有的其他.exe。谢谢
    猜你喜欢
    • 1970-01-01
    • 2015-10-21
    • 2022-10-13
    • 1970-01-01
    • 2010-10-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多