Variables and Operators - PowerShell

You might also like

Download as pdf or txt
Download as pdf or txt
You are on page 1of 2

SS64 PowerShell How-to Search

How-to: 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

Multiple variables can be initialised in a single line, this will create var1 and var2:

$var2=($var1=1)+1

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)

The .NET Math library adds more options such as Round(), Ceiling(), Max(), Min() etc

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"

$yesterday = get-date((get-date).addDays(-1)) -format yyyyMMdd

$myHexValue = 0x10

$myExponentialValue = 6.5e3

Strongly typed
Forcing the correct Data Type
can prevent/trap errors in later calculations.

[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

Validation
In PowerShell V3.0, you can specify a range of valid attributes for any variable:

PS C:\> [ValidateRange(1,10)] [int]$x = 1

PS C:\> $x = 11

The variable cannot be validated because the value 11 is not a valid value for the x variable.

At line:1 char:1 + $x = 11
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 can take this one step further and turn the script block into a Function or Filter.

Reserved Words
The following may not be used as variable identifiers (unless surrounded in quotes)

break, continue, do, else, elseif, for, foreach, function, filter, in, if, return, switch, until,
where, while.

“Most variables can show either an upward trend or a downward trend, depending on the base year chosen” ~ Thomas Sowell

Related PowerShell Cmdlets:

How-to: Automatic variables - Variables created and maintained by PowerShell $_, $Args, $Error, $Home etc.

How-to: Environment variables - Windows environment variables Env:

How-to: Parameters - Command Line Arguments %1 %~f1

How-to: Preference variables - Preferences: Verbosity, Confirmations, ErrorAction, $Debug.

How-to: Reference variables - Pass values to a function.

How-to: Concatenation - Methods to combine strings together.

How-to: PowerShell Operators - Advanced Operators for Arrays and formatting expressions.

Set-PSBreakpoint - Set a breakpoint on a line, command, or variable.

Get-Item Variable:

Clear-Variable - Remove the value from a variable.

Get-Variable - Get a PowerShell variable.

New-Variable - Create a new variable.

Remove-Variable - Remove a variable and its value

Set-Variable - Set a variable and a value.

  Copyright © 1999-2021 SS64.com


Some rights reserved

You might also like