PowerShell: Check whether a Windows command or executable is available

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.

  1. function commandAvailable($cmd, $options)
  2. {
  3.   $error.clear();
  4.   $ErrorActionPreference = "silentlycontinue";  
  5.   & $cmd $options | out-null;
  6.   if ($error[0])
  7.   {
  8.     write-host ("Command " + $cmd + " " + $options + " is not available") -foregroundcolor "red";
  9.     return $false;
  10.   }
  11.   return $true;
  12. }
  14. write-host (commandAvailable "svn" "–version");

Über uns Stefan

Polyglot Clean Code Developer

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.

To create code blocks or other preformatted text, indent by four spaces:

    This will be displayed in a monospaced font. The first four 
    spaces will be stripped off, but all other whitespace
    will be preserved.
    Markdown is turned off in code blocks:
     [This is not a link](http://example.com)

To create not a block, but an inline code span, use backticks:

Here is some inline `code`.

For more help see http://daringfireball.net/projects/markdown/syntax