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

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)

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.