PowerShell Special variables store information about PowerShell. These are also called automatic variables. Following is the list of automatic variables −
Operator | Description |
---|---|
$$ | Represents the last token in the last line received by the session. |
$? | Represents the execution status of the last operation. It contains TRUE if the last operation succeeded and FALSE if it failed. |
$^ | Represents the first token in the last line received by the session. |
$_ | Same as $PSItem. Contains the current object in the pipeline object. You can use this variable in commands that perform an action on every object or on selected objects in a pipeline. |
$ARGS | Represents an array of the undeclared parameters and/or parameter values that are passed to a function, script, or script block. |
$CONSOLEFILENAME | Represents the path of the console file (.psc1) that was most recently used in the session. |
$ERROR | Represents an array of error objects that represent the most recent errors. |
$EVENT | Represents a PSEventArgs object that represents the event that is being processed. |
$EVENTARGS | Represents an object that represents the first event argument that derives from EventArgs of the event that is being processed. |
$EVENTSUBSCRIBER | Represents a PSEventSubscriber object that represents the event subscriber of the event that is being processed. |
$EXECUTIONCONTEXT | Represents an EngineIntrinsics object that represents the execution context of the PowerShell host. |
$FALSE | Represents FALSE. You can use this variable to represent FALSE in commands and scripts instead of using the string "false". |
$FOREACH | Represents the enumerator (not the resulting values) of a ForEach loop. You can use the properties and methods of enumerators on the value of the $ForEach variable. |
$HOME | Represents the full path of the user's home directory. |
$HOST | Represents an object that represents the current host application for PowerShell. |
$INPUT | Represents an enumerator that enumerates all input that is passed to a function. |
$LASTEXITCODE | Represents the exit code of the last Windows-based program that was run. |
$MATCHES | The $Matches variable works with the -match and -notmatch operators. |
$MYINVOCATION | $MyInvocation is populated only for scripts, function, and script blocks. PSScriptRoot and PSCommandPath properties of the $MyInvocation automatic variable contain information about the invoker or calling script, not the current script. |
$NESTEDPROMPTLEVEL | Represents the current prompt level. |
$NULL | $null is an automatic variable that contains a NULL or empty value. You can use this variable to represent an absent or undefined value in commands and scripts. |
$PID | Represents the process identifier (PID) of the process that is hosting the current PowerShell session. |
$PROFILE | Represents the full path of the PowerShell profile for the current user and the current host application. |
$PSCMDLET | Represents an object that represents the cmdlet or advanced function that is being run. |
$PSCOMMANDPATH | Represents the full path and file name of the script that is being run. |
$PSCULTURE | Represents the name of the culture currently in use in the operating system. |
$PSDEBUGCONTEXT | While debugging, this variable contains information about the debugging environment. Otherwise, it contains a NULL value. |
$PSHOME | Represents the full path of the installation directory for PowerShell. |
$PSITEM | Same as $_. Contains the current object in the pipeline object. |
$PSSCRIPTROOT | Represents the directory from which a script is being run. |
$PSSENDERINFO | Represents information about the user who started the PSSession, including the user identity and the time zone of the originating computer. |
$PSUICULTURE | Represents the name of the user interface (UI) culture that is currently in use in the operating system. |
$PSVERSIONTABLE | Represents a read-only hash table that displays details about the version of PowerShell that is running in the current session. |
$SENDER | Represents the object that generated this event. |
$SHELLID | Represents the identifier of the current shell. |
$STACKTRACE | Represents a stack trace for the most recent error. |
$THIS | In a script block that defines a script property or script method, the $This variable refers to the object that is being extended. |
$TRUE | Represents TRUE. You can use this variable to represent TRUE in commands and scripts. |