Variables
PowerShell variables, similar to variables in other programming languages, are names for data stored in memory. PowerShell variable references begin with a dollar sign and are created by assigning a value with the assignment operator (the equals sign). Unlike many programming languages, you do not need to define variables before using them or even specify what type of information the variable is going to point to. For instance, the following statements are all valid:
$var = 5
$anothervar = "Hello"
$files = dir c:\
Note that while the first two assignments were simple (integer and string constants), the third involved executing a pipeline (with a single statement) and storing the results of that pipeline in a variable. The command in the third line returns a collection of more than one kind of object (it has files and folders). Note that there is no special notation required to store a collection of objects.
Several common parameters in PowerShell take the name of a variable in order to store results of some kind in that variable. The –ErrorVariable
, –WarningVariable
, –OutVariable
parameters, and (new in Version 4.0) –PipelineVariable
parameter all follow this pattern. Also, all of the *–Variable
cmdlets have a –Name
parameter. These parameters are expecting the name of the variable rather than the contents of the variable. The name of the variable does not include the dollar sign. In the following screenshot, you can see that the –outvariable
parameter was passed the file
value, which caused a copy of the output to be stored in the variable called file
:
In short, referencing the content of the variable involves the dollar sign, but referencing the variable name does not.