This draft deletes the entire topic.
Introduction
Automatic Variables are created and maintained by Windows PowerShell. One has the ability to call a variable just about any name in the book; The only exceptions to this are the variables that are already being managed by PowerShell. These variables, without a doubt, will be the most repetitious objects you use in PowerShell next to functions (like $? - indicates Success/ Failure status of the last operation)
Examples
-
Contains status of the last operation. When there is no error, it is set to
True
:PS C:\> Write-Host "Hello" Hello PS C:\> $? True
If there is some error, it is set to
False
:PS C:\> wrt-host wrt-host : The term 'wrt-host' is not recognized as the name of a cmdlet, function, script file, or operable program. Check the spelling of the name, or if a path was included, verify that the path is correct and try again. At line:1 char:1 + wrt-host + ~~~~~~~~ + CategoryInfo : ObjectNotFound: (wrt-host:String) [], CommandNotFoundException + FullyQualifiedErrorId : CommandNotFoundException PS C:\> $? False
-
Variable called Output Field Separator contains string value that is used when converting an array to a string. By default
$OFS = " "
(a space), but it can be changed:PS C:\> $array = 1,2,3 PS C:\> "$array" # default OFS will be used 1 2 3 PS C:\> $OFS = ",." # we change OFS to comma and dot PS C:\> "$array" 1,.2,. 3
-
-
$null
is used to represent absent or undefined value.
$null
can be used as an empty placeholder for empty value in arrays:PS C:\> $array = 1, "string", $null PS C:\> $array.Count 3
When we use the same array as the source for
ForEach-Object
, it will process all three items (including $null):PS C:\> $array | ForEach-Object {"Hello"} Hello Hello Hello
Be careful! This means that
ForEach-Object
WILL process even$null
all by itself:PS C:\> $null | ForEach-Object {"Hello"} # THIS WILL DO ONE ITERATION !!! Hello
Which is very unexpected result if you compare it to classic
foreach
loop:PS C:\> foreach($i in $null) {"Hello"} # THIS WILL DO NO ITERATION PS C:\>
-
Contains the object/item currently being processed by the pipeline.
PS C:\> 1..5 | % { Write-Host "The current item is $_" } The current item is 1 The current item is 2 The current item is 3 The current item is 4 The current item is 5
$PSItem
and$_
are identical and can be used interchangeably, but$_
is by far the most commonly used. -
Array of most recent error objects. The first one in the array is the most recent one:
PS C:\> throw "Error" # resulting output will be in red font Error At line:1 char:1 + throw "Error" + ~~~~~~~~~~~~~ + CategoryInfo : OperationStopped: (Error:String) [], RuntimeException + FullyQualifiedErrorId : Error PS C:\> $error[0] # resulting output will be normal string (not red ) Error At line:1 char:1 + throw "Error" + ~~~~~~~~~~~~~ + CategoryInfo : OperationStopped: (Error:String) [], RuntimeException + FullyQualifiedErrorId : Error
-
-
$true
and$false
are two variables that represent logical TRUE and FALSE.Note that you have to specify the dollar sign as the first character (which is different from C#).
Topic Outline
Introduction
Sign up or log in
Save edit as a guest
Join Stack Overflow
Using Google
Using Facebook
Using Email and Password
We recognize you from another Stack Exchange Network site!
Join and Save Draft