In one of my recent PowerShell scripts I needed to find out if certain commands (in my case “svn”, “git”, “ant” and “mvn”) were available or not. I wrote this small function that tries to call the given command and returns whether it is callable.
function commandAvailable($cmd, $options)
{
$error.clear();
$ErrorActionPreference = "silentlycontinue";
& $cmd $options | out-null;
$ErrorActionPreference = "stop";
if ($error[0])
{
write-host ("Command " + $cmd + " " + $options + " is not available") -foregroundcolor "red";
return $false;
}
return $true;
}
write-host (commandAvailable "svn" "--version");