【问题标题】:PowerShell opens the .msi instead of saving the path into a variabe [duplicate]PowerShell打开.msi而不是将路径保存到变量中[重复]
【发布时间】:2021-11-21 07:23:22
【问题描述】:

我正在编写一个脚本,如果应用程序的版本较低或未安装,则必须安装它,但 .msi 的路径必须在变量中

    $msiSciteInstaller="path_to.msi"
$flag=0
$list=Get-ItemProperty HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\* | Where-Object -Property Displayname -Match "Scite"
foreach ( $listItem in $list ){
    $flag+1 > $null

    Write-Host ( " * Scite Installation Detected ")
    Write-Host ( " * Scite version : "+$listItem.DisplayVersion.ToString())

    if ($listItem.DisplayVersion -cle 6.0){
        Write-Host ( " * Warning Vulnerability Detected" )
        $msiSciteInstaller
        }else{
        Write-Host (" * Out of danger")
        exit
    }
    }
if ( $flag -eq 0 ){
    Write-Host "Not installed, so it´s gonna be installed"
    $msiSciteInstaller
}

【问题讨论】:

  • $msiSciteInstaller 更改为 & $msiSciteInstaller - & 是 PowerShell 中的调用/调用运算符,明确表示您打算调用命令而不仅仅是输出字符串

标签: powershell variables windows-installer


【解决方案1】:

当遇到由裸值表达式组成的语句时(例如 $msiSciteInstaller 单独一行),PowerShell 的默认行为是对其求值并输出结果。

要将字符串作为命令调用,请使用调用运算符 (&):

& $msiSciteInstaller

【讨论】:

    猜你喜欢
    • 2021-10-31
    • 1970-01-01
    • 1970-01-01
    • 2020-07-06
    • 1970-01-01
    • 1970-01-01
    • 2015-03-04
    • 1970-01-01
    • 2014-09-30
    相关资源
    最近更新 更多