Variables in powershell are two types.

  • User defined variables
  • Environment variables Variables are used to store the value temporarary, hat internally the store the value in a memory location.

You can declare the variable once, access the variable in multiple places

Variables names are prefixed with $ followed by an characeters. It contains an value assigned to it using #



variables also used to store the result of a command. Command can be any operation or action. Example are arthematic operations.


Variables stores the data of different data types.

Let’s discuss about different data types supported in Powershell.

Declare Multiple variables with a single line

You can declare multiple variables in a single line with data assignment

For example, declare three variables, assigned with values in comma separated variables and data.

$first, $second,$third=1,2,3
write-host"$first $second, $third"

Variable Scopes

In Powershell, Variables or function names can have a scopes

  • Global : variable avilabile and accessed globally.
  • Local : Local variable where it is defined
  • Script: scope of the variable exists in current script only.

To set the variable in a scope, use below syntax

$scope:variable=value: - set the variable with a value in given scope $scope:variable: access the variable in a given scope

Power shell assigns two more scopes when you defina an variable in a scope

Data types in Powershell

Datatype allows you to store different values for an variable. The following are supported types in Powershell.

  • Integer: Represents the whole numbers, example are 1,90
  • Float: Contains precission and decimal numbers, Example are 1.11
  • String: Contains characters and letters, Example are content
  • Boolean: Boolean value such as True or False
  • DateTime: represents date and time stamp
  • arrays ; Collection of elements stored under a single variable
  • hashtable: Stores the key and value pair elements

Powershell Environment variables

Powershell provides $env scope that stores all environment varibles.

  • Read Environment variables

TO read single environment variable


windir is an environment variablem prints windows directory.

You can also read all environment variables and print using below command lin script file.

Get-ChildItem env:

It displays environment variable name and value

Name                           Value
----                           -----
_MSYS2_BASH                    C:\tools\msys64\usr\bin\bash.exe
_MSYS2_PREFIX                  x86_64
ALLUSERSPROFILE                C:\ProgramData
ANDROID_HOME                   A:\android\sdk
ANT_HOME                       A:\Java\apache-ant-1.10.0

Another way using dir Env: command in powershell list out all environment variables

dir Env:
  • To set environment varlable
# Add environment variable
$env:My_HOME = "welcome"

It adds My_HOME variable with value to environment.

Prints the value of My_HOME

Get-ChildItem Env:My_HOME
Name                           Value
----                           -----
My_HOME                        welcome

another way, print welcome using $env:My_HOME command

  • To remove environment variable Remove-Item is used to remove the environment variable
Remove-Item -Path Env:My_HOME

When you add or modify an environment variable via script or a command, life the variable only exists on same session