Nur für den Fall, dass einige es nützlich finden. Hier ist eine Funktion im Geiste von David Brabants Antwort mit einem Check für minimale Versionsnummern.
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"
}
}
}
Auf diese Weise können Sie folgendes tun:
Ensure-ExecutableExists -Executable pscp -MinimumVersion "0.62.0.0"
Es macht nichts, wenn die Bedingung erfüllt ist oder einen Fehler wirft es nicht ist.
Danke David. Wie kann ich das anmutig machen und den großen roten Fehler zum Schweigen bringen? –
Da niemand gesagt hat, tötet das hinzugefügte "-ErrorAction SilentlyContinue" den großen roten Fehler. –
Ich habe 'where.exe' verwendet und den Exit-Code überprüft, aber das war kein PS-Befehl. – orad