2012-06-28 17 views

cevap

70

Eğer örnek bir hata mesajı göstermek veya yürütülebilir (Nuget düşünün) indirmek için, senin yolunda bir komuta olmayan varlığını test etmek isterseniz Sen Get-Command (gcm)

if (Get-Command "pandoc.exe" -ErrorAction SilentlyContinue) 
{ 
    pandoc -Ss readme.txt -o readme.html 
} 

aracılığıyla test edebilirsiniz:

if ((Get-Command "pandoc.exe" -ErrorAction SilentlyContinue) -eq $null) 
{ 
    Write-Host "Unable to find pandoc.exe in your PATH" 
} 

inf almak için bir PowerShell oturumunda

(Get-Help gcm).description 

deneyin Get-Command hakkında ormation.

+1

Teşekkürler David. Bunu büyük kırmızı hatayı susturmak için nasıl incelerim? –

+1

Hiç kimsenin dediği gibi, "-ErrorAction SilentlyContinue" eklendiğinde büyük kırmızı hatası giderildi. –

+1

'where.exe'yi kullandım ve çıkış kodunu kontrol ettim, ancak bu bir PS komutu değildi. – orad

1

Bazıları bunu faydalı buluyorsa. İşte David Brabant'ın cevabındaki bir işlev, minimum sürüm sayıları için bir kontrolle.

Function Ensure-ExecutableExists 
{ 
    Param 
    (
     [Parameter(Mandatory = $True)] 
     [string] 
     $Executable, 

     [string] 
     $MinimumVersion = "" 
    ) 

    $CurrentVersion = (Get-Command -Name $Executable -ErrorAction Stop).Version 

    If($MinimumVersion) 
    { 
     $RequiredVersion = [version]$MinimumVersion 

     If($CurrentVersion -lt $RequiredVersion) 
     { 
      Throw "$($Executable) version $($CurrentVersion) does not meet requirements" 
     } 
    } 
} 

Bu aşağıdakileri yapmanızı sağlar:

Ensure-ExecutableExists -Executable pscp -MinimumVersion "0.62.0.0" 

Bu şart yerine getirilmeden ise hiçbir şey yapmaz veya bir hata atar öyle değil.