Flaphead on TechNet

Check out my "other" blog at http://blogs.flaphead.dns2go.com/default.aspx

Blogs

Powershell 101: IF .. Else

  • Comments 1
  • Likes

Originally Posted here: http://blogs.flaphead.dns2go.com/archive/2006/08/14/3509.aspx


Okay as a beginner this took a bit of time to perfect so here goes. For some of you hardened programmers this might be a bit basic, but I had to start somewhere.  My background is cmd and vbs files with some html chucked in, so this syntax is new to me

Simple IF, Else

$a = "Powershell"
IF ($a -eq "PowerShell")
{
 "Statement is True"
}
ELSE
{
 "Statement is False"
}

You can condence this to:

$a = "Powershell"
IF ($a -eq "PowerShell"){ "Statement is True"} ELSE { "Statement is False"}

Now if you want to check for a NULL then it gets fun

$b = “Hello”
IF ($b -eq $NULL)
{  
"B is NULL"
}
ELSE
{
 "B is NOT NULL"
}


So you have whole load of conditional statement like these:

Operator

Definition

-lt

Less than

-le

Less than or equal to

-gt

Greater than

-ge

Greater than or equal to

-eq

Equal to.  If the left hand side of the operator is an array and the right hand side is a scalar, the equivalent values of the left hand side will be returned

-ne

Not Equal to. If the left hand side of the operator is an array and the right hand side is a scalar, the not equivalent values of the left hand side will be returned

-contains

Determine elements in a group, this always returns Boolean $True or $False.

-notcontains

Determine excluded elements in a group, this always returns Boolean $True or $False.

-like

Like - uses wildcards for pattern matching

-notlike

Not Like - uses wildcards for pattern matching

-match

Match - uses regular expressions for pattern matching

-notmatch

Not Match - uses regular expressions for pattern matching

-band

Bitwise AND

-bor

Bitwise OR

-is

Is of Type

-isnot

Is not of Type

These operators are the case-sensitive counterparts:

Operator

Definition

-clt

Less than (case sensitive)

-cle

Less than or equal to (case sensitive)

-cgt

Greater than (case sensitive)

-cge

Greater than or equal to (case sensitive)

-ceq

Equal to  (case sensitive)

-cne

Not Equal to (case sensitive)

-clike

Like (case sensitive)

-cnotlike

Not Like (case sensitive)

-ccontains

left hand side contains right hand side in a case sensitive manner

-cnotcontains

determine excluded elements in a group in a case sensitive manner

-cmatch

Match (case sensitive)

-cnotmatch

Not Match (case sensitive)

Other operators:

Operator

Definition

+

Add

-

Subtract

*

Multiply

/

Divide

%

Modulo

-not

logical not

!

logical not

-band

binary and

-bor

binary or

-bnot

binary not

-replace

Replace (e.g.  "abcde" –replace "b","B") (case insensitive)

-ireplace

Case-insensitive replace (e.g.  "abcde" –ireplace "B","3")

-creplace

Case-sensitive replace (e.g.  "abcde" –creplace "B","3")

-and

AND (e.g. ($a -ge 5 -AND $a -le 15) )

-or

OR  (e.g. ($a –eq "A" –OR $a –eq "B") )

-is

IS type (e.g. $a -is [int] )

-isnot

IS not type (e.g. $a -isnot [int] )

-as

convert to type (e.g. 1 -as [string] treats 1 as a string )

..

Range operator (e.g.  foreach ($i in 1..10) {$i }  )

&

call operator (e.g. $a = "Get-ChildItem" &$a executes Get-ChildItem)

. (dot followed by a space)

call operator (e.g. $a = "Get-ChildItem" . $a executes Get-ChildItem in the current scope)

-F

Format operator (e.g. foreach ($p in Get-Process) { "{0,-15} has {1,6} handles" –F  $p.processname,$p.Handlecount } )

Comments
  • zafarancho en el rancho!

    Ese farzad!

Your comment has been posted.   Close
Thank you, your comment requires moderation so it may take a while to appear.   Close
Leave a Comment