TOPIC
about_Variables
SHORT DESCRIPTION
Describes how Variables store values that can be used in Windows
PowerShell.
LONG DESCRIPTION
A Variable is a unit of memory in which values are stored. In Windows
PowerShell, Variables are represented by single-word text strings that
begin with the dollar sign ($), such as $a, $process, or
$my_var.
There are several different types of Variables in Windows PowerShell.
— User-created Variables: User-created Variables are created and
maintained by the user. By default, the Variables that you create at
the Windows PowerShell command line exist only while the Windows
PowerShell window is open, and they are lost when you close the window.
To save a Variable, add it to your Windows PowerShell profile. You can
also create Variables in scripts with global, script, or local scope.
— Automatic Variables: Automatic Variables store the state of
Windows PowerShell. These Variables are created by Windows PowerShell,
and Windows PowerShell changes their values as required to maintain
their accuracy. Users cannot change the value of these Variables.
For example, the $PSHome Variable stores the path to the Windows
PowerShell installation directory. For more information, a list, and
a description of the automatic Variables, see about_Automatic_Variables.
— Preference Variables: Preference Variables store user preferences for
Windows PowerShell. These Variables are created by Windows PowerShell
and are populated with default values. Users can change the values of
these Variables. For example, MaximumHistoryCount determines the maximum
number of entries in the session history. For more information, a list,
and a description of the preference Variables, see
about_preference_variables.
WORKING WITH VariableS
To list all of the Variables in your Windows PowerShell session, type:
To display the value of any Variable, type the name of the Variable,
preceded by a dollar sign ($). Windows PowerShell responds by displaying
its value.
$<variable-name>
For example:
PS> $pshome
C:\Windows\System32\WindowsPowerShell\v1.0
To create a new Variable or to change the value of a Variable, use an
assignment statement in the following format:
$<variable> = <value>
For example:
PS> $my-variable = 1, 2, 3
or
PS> $VerbosePreference = “Continue”
To get an object that represents the Variable, use a Get-Variable
command, such as:
PS> Get-Variable pid
To use a Variable, type the Variable name, including the dollar sign ($),
in a command or expression. If the command or expression is not enclosed
in quotation marks or if it is enclosed in double-quotation marks (“), the
value of the Variable is used in the command or expression. If the command
is enclosed in single quotation marks, (‘), the Variable name is used in
the expression.
For example, the first command finds the value of the $profile Variable,
which is the path to the Windows PowerShell user profile file. The
second command opens the file in Notepad.
PS> $profile
C:\Documents and Settings\User01\My Documents\WindowsPowerShell\Microsoft.PowerShell_profile.ps1
PS> Notepad $profile
You can store any type of object in a Variable, including integers,
strings, arrays, and hash tables, objects that represent processes,
services, event logs, and computers.
SAVING VariableS
Variables that you create are available only in the session in which
you create them. They are lost when you close your session.
To save a Variable, add the Variable to your Windows PowerShell profile.
Variables in a profile are added to every Windows PowerShell session
that you open.
For example, to change the value of the $VerbosePreference Variable in
every Windows PowerShell session, add the following command to your Windows
PowerShell profile.
$VerbosePreference = “Continue”
You can add this command to your profile by opening the profile file in a
text editor, such as Notepad, or you can use an Add-Content command, like
the following one.
The following command adds the new value for the $VerbosePreference Variable
to the CurrentUser,AllHosts profile.
Add-Content -path $profile.CurrentUserAllHosts -value ‘$VerbosePreference = “Continue”‘
For more information about Windows PowerShell profiles, see about_profiles.
Variable NAMES WITH SPECIAL CHARACTERS
You can use braces to force Windows PowerShell to interpret a
Variable name literally. This is especially helpful when creating
or referring to a Variable name that includes special characters,
such as dashes, periods, colons, and parentheses.
To create a Variable name that includes a hyphen, enclose the
Variable name in braces. The following command creates a Variable
named “save-items”.
C:\PS> ${save-items} = “a”, “b”, “c”
C:\PS>${save-items}
a
b
c
To refer to a Variable name that includes parentheses, enclose
the Variable name in braces.
For example, the following command gets the child items in the
directory stores in the “ProgramFiles(x86)” Environment Variable.
C:\PS> Get-ChildItem ${env:ProgramFiles(x86)}
To refer to a Variable name that includes braces, enclose the
Variable name in braces, and use the backtick (escape) character
to escape the braces. For example, to create a Variable
named “this{value}is” with a value of 1, type:
C:\PS> ${this`{value`}is} = 1
C:\PS> ${this`{value`}is}
1
THE Variable: DRIVE
Windows PowerShell includes a Variable: drive that looks and acts like
a file system drive, but it contains the Variables in your session.
To change to the Variable drive, type:
(or “cd Variable:”)
When in the Variable drive, to list the items (variables) in the
drive, use the Get-ChildItem cmdlet. For example:
(or “dir” or “ls”)
For more information about the Variable: drive and the Windows
PowerShell Variable provider, type:
SEE ALSO
about_Automatic_Variables
about_environment_variables
about_preference_variables
about_scopes