簡體   English   中英

Powershell測試2語句是否為真函數

[英]Powershell test 2 statements if true functions

Clear-Host
Function First {
    $File1 = "C:\Program Files\WinRAR\WinRAR.exe"
    $TestFile1 = Test-Path $File1
    If ($TestFile1 -eq $True) {Write-Host "Winrar is installed." -F Green -B Black}
    Else {Write-Host "Winrar is not installed." -F Red -B Black}
}
First

Function Second {
    $winrar = Get-ItemProperty -Path HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\*
    $winrarCheck = "Winrar"
    $winrarFinal = $winrar | Where {$_.DisplayName -match $winrarCheck} | Format-Table -Property DisplayName,DisplayVersion

    $winrarFinal
    If ($winrarFinal) {Write-Host "Winrar registry check installed." -F Green -B Black}
    Else {Write-Host "Winrar registry check failed." -F Red -B Black}
    }
Second

是否可以使用If語句檢查兩個函數? 我想檢查一下這兩個功能是否都正確, Write-Host "Program installed." Else Write-Host "Failed to install". Write-Host "Program installed." Else Write-Host "Failed to install".

開始了:

Function CheckFileInstalled {

    param (
        [string]$pathProg     = "C:\Program Files\WinRAR\WinRAR.exe",
        [string]$nameProg     = "Winrar"
    )

    $testFileProg = Test-Path $pathProg

    $x86 = ((Get-ChildItem "HKLM:\Software\Microsoft\Windows\CurrentVersion\Uninstall") |
        Where-Object { $_.GetValue( "DisplayName" ) -like "*$nameProg*" } ).Length -gt 0;

    $x64 = ((Get-ChildItem "HKLM:\Software\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall") |
        Where-Object { $_.GetValue( "DisplayName" ) -like "*$nameProg*" } ).Length -gt 0;


    return ( $testFileProg -and ($x86 -or $x64) )

}


if( CheckFileInstalled ) {

    Write-Host "Program installed." 
}
else {
    Write-Host "Failed to install."
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM