TEMA
about_Automatic_Variables
DESCRIPCIÓN BREVE
Describe las variables que almacenan información de estado para
Windows PowerShell.
Estas variables las crea y mantiene Windows PowerShell.
DESCRIPCIÓN DETALLADA
A continuación se muestra una lista de variables automáticas en
Windows PowerShell:
$$
Contiene el último símbolo (token) de la última línea recibida
por la sesión.
$?
Contiene el estado de ejecución de la última operación.
Contiene TRUE si la última operación se realizó correctamente,
y FALSE si se produjo un error.
$^
Contiene el primer símbolo de la última línea recibida por la
sesión.
$_
Contiene el objeto actual que hay en el objeto de
canalización. Esta variable se puede utilizar en comandos que
realizan una acción en cada objeto o en objetos seleccionados
de una canalización.
$Args
Contiene una matriz de parámetros no declarados o los valores de
parámetro que se pasan a una función, script o bloque de script.
Al crear una función, se pueden declarar los parámetros mediante la
palabra clave param o agregando después del nombre de la función una
lista entre paréntesis de parámetros separados por comas.
$ConsoleFileName
Contiene la ruta de acceso del último archivo de consola (.psc1)
utilizado en la sesión. Esta variable se rellena al iniciar Windows
PowerShell con el parámetro PSConsoleFile, o bien cuando se utiliza
el cmdlet Export-Console para exportar los nombres de complemento a
un archivo de consola.
Si el cmdlet Export-Console se utiliza sin parámetros, actualiza
automáticamente el último archivo de consola utilizado en la sesión.
Esta variable automática se puede utilizar para determinar qué archivo se
actualizará.
$Error
Contiene una matriz de objetos de error que representan los
errores más recientes. El error más reciente es el primer
objeto de error de la matriz ($Error[0]).
$Evento
Contiene un objeto PSEventArgs que representa el evento que se está
procesando.
Esta variable se rellena únicamente en el bloque Action de un comando de
registro de eventos, como Register-ObjectEvent. El valor de esta
variable es el mismo objeto que devuelve el Get-Event cmdlet. No
obstante, se pueden utilizar las propiedades de la variable $Event, como
$Event.TimeGenerated, en un bloque de script Action.
$EventSubscriber
Contiene un objeto PSEventSubscriber que representa el suscriptor de
eventos del evento que se está procesando. Esta variable se rellena
únicamente en el bloque Action de un comando de registro de eventos.
El valor de esta variable es el mismo objeto que devuelve el
Get-EventSubscriber.
$ExecutionContext
Contiene un objeto EngineIntrinsics que representa el contexto de
ejecución del host de Windows PowerShell. Esta variable se puede
utilizar para buscar los objetos de ejecución que están disponibles
para los cmdlet.
$False
Contiene FALSE. Esta variable se puede utilizar para representar
FALSE en los comandos y scripts en lugar de utilizar la
cadena "false". La cadena se puede interpretar como TRUE si se
convierte en una cadena que no está vacía o en un entero distinto de cero.
$ForEach
Contiene el enumerador de un bucle ForEach-Object. Las propiedades y los
métodos de los enumeradores se pueden utilizar con el valor de la variable
$ForEach. Esta variable existe únicamente mientras se está ejecutando el
bucle For. Se elimina cuando el bucle finaliza.
$Home
Contiene la ruta de acceso completa del directorio principal
del usuario. Esta variable equivale a las variables de entorno
%homedrive%%homepath%, normalmente, C:\Documents and Settings\<usuario>.
$Host
Contiene un objeto que representa la aplicación host actual
para Windows PowerShell. Esta variable se puede utilizar para
representar el host actual en los comandos o para mostrar o
cambiar las propiedades del host, como $Host.version,
$Host.CurrentCulture o $host.ui.rawui.setbackgroundcolor("Red").
$Input
Un enumerador que contiene la entrada que se pasa a una función. La
variable $Input distingue mayúsculas y minúsculas y está disponible
únicamente en las funciones y los bloques de script. (Los bloques de
script son, en esencia, funciones sin nombre.) En el bloque Process
de una función, la variable $Input contiene el objeto que se encuentra
actualmente en la canalización. Cuando se completa el bloque Process,
el valor de $Input es NULL. Si la función no tiene un bloque Process,
el valor de $Input está disponible para el bloque End y contiene toda
la entrada de la función.
$LastExitCode
Contiene el código de salida del último programa basado en
Windows que se ejecutó.
$Matches
La variable $Matches funciona con los operadores -match y -not match.
Cuando se envía una entrada escalar al operador -match o -notmatch y
cualquiera de los ellos detecta una coincidencia, devuelven un valor
de tipo boolean y rellenan la variable automática $Matches con una
tabla hash que contiene todos los valores de tipo string para los que
se han hallado coincidencias. Para obtener más información sobre el
operador
-match, vea about_comparison_operators.
$MyInvocation
Contiene un objeto con información sobre el comando actual, como un
script, función o bloque de script. Se puede utilizar la información
del objeto, como la ruta de acceso y el nombre de archivo del script
($myinvocation.mycommand.path) o el nombre de una función
($myinvocation.mycommand.name) para identificar el comando actual.
Esto resulta de gran utilidad para buscar el nombre del script que se
está ejecutando.
$NestedPromptLevel
Contiene el nivel de símbolo del sistema actual. El valor 0
indica el nivel de símbolo del sistema original. El valor se
incrementa al entrar en un nivel anidado y disminuye al salir
de él.
Por ejemplo, Windows PowerShell presenta un símbolo del
sistema anidado cuando se utiliza el método $Host.EnterNestedPr
ompt. Windows PowerShell también presenta un símbolo del
sistema anidado cuando se alcanza un punto de interrupción en el
depurador de Windows PowerShell.
Cuando se entra en un símbolo del sistema anidado, Windows
PowerShell pone en pausa el comando actual, guarda el contexto de
ejecución e incrementa el valor de la variable $NestedPromptLevel.
Para crear símbolos del sistema anidados adicionales (hasta 128 niveles)
o volver al símbolo del sistema original, se debe completar el comando
o escribir "exit".
La variable $NestedPromptLevel ayuda a realizar el seguimiento
del nivel del símbolo del sistema. Puede crear un símbolo del
sistema alternativo de Windows PowerShell que incluya este
valor para que siempre esté visible.
$NULL
Contiene un valor NULL o vacío. Esta variable se puede
utilizar para representar NULL en los comandos y scripts en
lugar de utilizar la cadena "NULL". La cadena se puede
interpretar como TRUE si se convierte en una cadena que no
está vacía o en un entero distinto de cero.
$PID
Contiene el identificador de proceso (PID) del proceso en el que se
hospeda la sesión de Windows PowerShell actual.
$Profile
Contiene la ruta de acceso completa del perfil de Windows
PowerShell correspondiente al usuario actual y a la aplicación host
actual. Esta variable se puede utilizar para representar el perfil en los
comandos. Por ejemplo, se puede utilizar en un comando para
determinar si se ha creado un perfil:
test-path $profile
O bien, se puede utilizar en un comando para crear un perfil:
new-item -type file -path $pshome -force
También se puede utilizar en un comando para abrir el perfil
en el Bloc de notas:
notepad $profile
$PSBoundParameters
Contiene un diccionario de parámetros activos y sus valores
actuales. Esta variable solamente tiene valor en los ámbitos
donde se declaran los parámetros, como un script o una
función. Se puede utilizar para mostrar o cambiar los valores
actuales de los parámetros o para pasar valores de parámetros
a otro script u otra función.
Por ejemplo:
function test {
param($a, $b)
# Mostrar los parámetros en formato de diccionario.
$psboundparameters
# Llamar a la función Test1 con $a y $b.
test1 @psboundparameters
}
$PsCmdlet
Contiene un objeto que representa el cmdlet o la función
avanzada que se está ejecutando.
Se pueden usar las propiedades y los métodos del objeto en el
código de cmdlet o de función para responder a las condiciones
de uso. Por ejemplo, la propiedad ParameterSetName contiene el
nombre del conjunto de parámetros que se está utilizando; por
su parte, el método ShouldProcess agrega dinámicamente los
parámetros Confirm y WhatIf al cmdlet.
Para obtener más información acerca de la variable automática
$PSCmdlet, vea about_Functions_Advanced.
$PsCulture
Contiene el nombre de la referencia cultural actualmente en
uso en el sistema operativo. La referencia cultural determina
el formato con que se muestran algunos elementos, tales como
números, monedas y fechas. Se trata del valor de la propiedad
System.Globalization.CultureInfo.CurrentCulture.Name del sistema.
Para obtener el objeto System.Globalization.CultureInfo del sistema,
se utiliza el cmdlet Get-Culture.
$PSDebugContext
Durante la depuración, esta variable contiene información sobre el
entorno de depuración. De lo contrario, contiene un valor NULL.
En consecuencia, se puede utilizar para indicar si el depurador tiene el
control. Cuando está rellenada, contiene un objeto PsDebugContext que
tiene las propiedades InvocationInfo y Breakpoints. La propiedad
InvocationInfo posee varias propiedades útiles, como la propiedad
Location. La propiedad Location indica la ruta de acceso del script
que se está depurando.
$PsHome
Contiene la ruta de acceso completa del directorio de
instalación para Windows PowerShell, que suele ser,
%windir%\System32\WindowsPowerShell\v1.0. Esta variable se puede
utilizar en las rutas de acceso de los archivos de Windows PowerShell.
Por ejemplo, el comando siguiente busca la palabra "variable" en los
temas de la Ayuda conceptual:
select-string -pattern variable -path $pshome\*.txt
$PSScriptRoot
Contiene el directorio desde el que se ejecuta el módulo de script.
Esta variable permite a que los scripts utilicen la ruta de
acceso del módulo para tener acceso a otros recursos.
$PsUICulture
Contiene el nombre de la referencia cultural de la interfaz de
usuario (IU) que está en uso actualmente en el sistema
operativo. La referencia cultural de la interfaz de usuario
determina qué cadenas de texto se utilizan para los elementos de la
interfaz de usuario, como los menús y los mensajes. Se trata del
valor de la propiedad System.Globalization.CultureInfo.CurrentUICulture.
Name del sistema. Para obtener el objeto System.Globalization.CultureInf
o del sistema, se utiliza el cmdlet Get-UICulture.
$PsVersionTable
Contiene una tabla hash de solo lectura que muestra los detalles sobre
la versión de Windows PowerShell que se está ejecutando en la sesión actual.
Esta tabla contiene los siguientes elementos:
CLRVersion: versión de Common Language Runtime (CLR)
BuildVersion: número de compilación de la versión
actual
PSVersion: número de versión de Windows
PowerShell
WSManStackVersion: número de versión de la pila de
WS-Management
PSCompatibleVersions: versiones de Windows PowerShell que son
compatibles con la versión actual
SerializationVersion: versión del método de serialización
PSRemotingProtocolVersion:
versión del protocolo de administración
remota de Windows PowerShell
$Pwd
Contiene un objeto de ruta de acceso que representa la ruta de
acceso completa del directorio actual.
$Sender
Contiene el objeto que ha generado este evento. Esta variable se rellena
únicamente en el bloque Action de un comando de registro de eventos. El
valor de esta variable puede encontrarse también en la propiedad Sender
del objeto PSEventArgs (System.Management.Automation.PSEventArgs) que
devuelve Get-Event.
$ShellID
Contiene el identificador del shell actual.
$SourceArgs
Contiene objetos que representan los argumentos de evento para el evento
que se está procesando. Esta variable se rellena únicamente en el bloque
Action de un comando de registro de eventos. El valor de esta variable
puede encontrarse también en la propiedad SourceArgs del objeto PSEventArgs
(System.Management.Automation.PSEventArgs) que devuelve Get-Event.
$SourceEventArgs
Contiene un objeto que representa el primer argumento de evento que deriva
de EventArgs para el evento que se está procesando. Esta variable se
rellena únicamente en el bloque Action de un comando de registro de
eventos.El valor de esta variable puede encontrarse también en la propiedad
SourceArgs del objeto PSEventArgs
(System.Management.Automation.PSEventArgs) que devuelve Get-Event.
$This
En un bloque de script que define una propiedad de script o
método de script, la variable $This se refiere al objeto que
se extiende.
$True
Contiene TRUE. Esta variable se puede utilizar para
representar TRUE en los comandos y scripts.
VEA TAMBIÉN
about_Hash_Tables
about_Preference_Variables
about_Variables