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