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

      




Tabla de contenido