Saturday, July 23, 2011

Control-Flow

PowerShell provides a comprehensive set of flow-control constructs, starting with if/elseif/else as follows:

$Value = 2
If ($Value -eq 1) {
Do-Something
}
ElseIf ($Value -eq 2) {
Do-SomethingElse
}
Else {
Do-SomethingCompletelyDifferent
}

Note that we have a completely different set of comparison and logical operators to remember as follows:


Equals -eq
Not Equal To -ne
Greater Than -gt
Greater Than or Equal To -ge
Less Than -lt
Less Than or Equal To -le
Not -not or !
And -and
Or -or

Additionally, if you're doing string comparison, you can force case-sensitive or case-insensitive (default comparison is case-insensitive) by prefacing the operator with a c or i e.g. -ceq is a case-sensitive equal comparison.

In addition to the if flow control, PowerShell also has:

  • Do While - Do {Code Block} While (Condition)
  • While - While (Condition) {Code Block}
  • Do Until -
  • For - For ($Index = 1; $Index -le 3; $Index++) {Code Block}
  • ForEach - ForEach ($MyObject In $MyObjectsArrayOrCollection) {Code Block}
  • Switch -
    Switch ($MyValue)
    {
        Result1 {Code Block}
        Result2 {Code Block}
        Default {Code Block}
    }

A couple of good articles on flow control are:

No comments:

Post a Comment