Sean's Personal Code Samples And References
Variables and Operators (add, subtract, divide...)

In PowerShell, all variable names start with the “$” character. 
Creating a new variable can be done in several ways:

$MyVariable = SomeValue
$MyVariable = "Some String Value"
[DataType]$MyVariable = SomeValue
New-Item Variable:\MyVariable -value SomeValue
New-Variable:\MyVariable -value SomeValue

Variable names containing punctuation, can be handled with the syntax ${MyVari@ble} = SomeValue
However if the braces ${ } contain a colon ":" then powershell will treat the variable as a PATH and store the values directly in that file.
${C:\some_file.txt} = SomeValue

Operators allow you to assign a value to the variable, or perform mathematical operations:

  Operator   Description

     = n     Equals n
    += n     Increase value by n (for strings will append n to the string)
    -= n     Decrease the value by n
    *= n     Multiply the value by n (for strings, duplicate the string n times)
    /= n     Divide the value by n
    %= n     Divide the value by n and assign the remainder (modulus)

  Arithmetic operators:

    + Add, - Subtract, * Multiply, / Divide, % Mod(Remainder from a division)

 .NET Math library:

 [Math]::Abs(n)
 [Math]::Equals(objA,ObjB)
 [Math]::Exp(double)
 [Math]::Ceiling(n)
 [Math]::Floor(n)
 [Math]::Max(m,n)
 [Math]::Min(m,n)
 [Math]::Round(n)
 [Math]::Truncate(n)

 [system.math] | gm -static
Powershell will follow normal arithmetic precedence working left to right, parentheses can be used override this.

Examples

$myPrice = 128
$myPrice += 200
$myItem = "Barbecue grill"
$myDescription = $myItem + " $ " + $myPrice

$CastAsString = "55"
$myHexValue = 0x10
$myExponentialValue = 6.5e3

Strongly typed:
[int]$myPrice = 128
[string]$myDescription = "Barbecue grill"
[string]$myDescription = 123
[string]$myDate = (get-date).ToString("yyyyMM")
$([DateTime] "12/30/2009")
$([DateTime]::Now)
[datetime]$start_date=[datetime]::now.date.addDays(-5)

When creating strongly typed variables it can be helpful to indicate the datatype in the variable name: $strProduct or $intPrice

Array variables:

$myArray = "The", "world", "is", "everlasting"

Powershell can also assign values to multiple variables:

$varX, $varY = 64 
$varA, $varB, $varC = 1, 2, 3

That will assign 1 to $varA, 2 to $varB, and 3 to $varC.

Script blocks

An entire script block can be stored in a variable: $myVar = { a bunch of commands } 
Then run/call the script using &
PS C:\> & $myVar

You may want to take this a step further and turn the script block into a Function or Filter.

Reserved Words - the following may not be used as identifiers (unless surrounded in quotes) 
break, continue, do, else, elseif, for, foreach, function, filter, in, if, return, switch, until, where, while.
Sean Marcellus
There are 10 kinds of people e in this world, those who understand binary and those who don’t.