TEMA
    about_methods

DESCRIPCIÓN BREVE
    Describe cómo se usan los métodos para realizar acciones en los 
    objetos de Windows PowerShell.
 

DESCRIPCIÓN DETALLADA
    Windows PowerShell usa colecciones estructuradas de datos, denominadas 
    objetos, para representar los elementos de los almacenes de datos o 
    el estado del equipo. Por ejemplo, cuando se obtiene acceso a un 
    archivo en Windows PowerShell, en realidad, no se trabaja con el 
    archivo sino con un objeto FileInfo, un tipo de objeto que actúa como 
    proxy del archivo.


    La mayoría de los objetos incluyen métodos. Un método es un 
    conjunto de instrucciones que especifican una acción determinada 
    que puede realizar con ese objeto. Por ejemplo, el objeto 
    FileInfo incluye un método denominado CopyTo, que permite copiar 
    el archivo representado por el objeto.


    Para ver una lista de los métodos y definiciones de método 
    asociados con un objeto específico, puede usar el cmdlet 
    Get-Member. No obstante, para usar el cmdlet, el objeto debe 
    existir ya en alguna forma, ya sea representado mediante una 
    variable, como un objeto creado al especificar un comando como 
    argumento del comando Get-Member, o bien, como un objeto pasado a 
    través de una canalización. Por ejemplo, suponga que se ha 
    asignado a la variable $a un valor de cadena, lo que significa que la 
    variable está asociada con un objeto de cadena. Para ver la lista de 
    métodos del objeto, escriba el siguiente comando en el símbolo del 
    sistema de Windows PowerShell:


        Get-Member -inputobject $a -membertype method


    Si desea ver qué métodos y definiciones de método están asociados 
    con un objeto que se pasa a través de la canalización, debe usar 
    un comando Get-Member en la canalización, tal y como se muestra en el 
    siguiente ejemplo:


        Get-ChildItem c:\final.txt | Get-Member -membertype method


    La manera más común de invocar un método es especificar el nombre 
    del método a continuación de una referencia de objeto (como una 
    variable o expresión). Debe separar la referencia de objeto y el 
    método con un punto. Además, debe usar paréntesis inmediatamente a 
    continuación del nombre de método para escribir los argumentos que 
    desee pasar al método. 


    Si no se pasa ningún argumento en una firma de método, se debe usar un 
    conjunto de paréntesis vacíos.


    Por ejemplo, el siguiente comando usa el método GetType para 
    devolver el tipo de datos asociado con el objeto de cadena $a:


        $a.GetType()


    El método GetType devuelve el tipo de datos para cualquier objeto y un 
    objeto siempre se representa mediante una variable. El tipo del 
    objeto dependerá del tipo de datos almacenados en esa variable.


    En Windows PowerShell, cada acción está asociada con objetos, 
    tanto si se declara una variable como si se combinan comandos en una 
    canalización.
    Por ello, es posible usar métodos en diversas situaciones. Por 
    ejemplo, puede usar un método para realizar una acción con el 
    valor de una propiedad, como se indica en el siguiente comando:


        (Get-ChildItem c:\final.txt).name.ToUpper()


    En este caso, el objeto en el que se está invocando el método 
    ToUpper es el objeto de cadena asociado con la propiedad name. 
    (Observe que el archivo Final.txt debe existir en la raíz de la 
    unidad C: para que este ejemplo funcione.) La propiedad name es 
    en realidad una propiedad del objeto FileInfo que el comando 
    Get-ChildItem devuelve. Esto no solo ilustra la naturaleza orientada a 
    objetos de Windows PowerShell, sino que también muestra cómo se puede 
    llamar a métodos en cualquier objeto accesible.


    Puede obtener los mismos resultados que en el ejemplo anterior si 
    usa una variable para almacenar el resultado del comando 
    Get-ChildItem, tal y como se indica en el siguiente ejemplo:


        $a = (Get-ChildItem c:\final.txt).name
        $a.ToUpper()


    El comando vuelve a usar el método ToUpper del objeto de cadena 
    asociado con la variable, que contiene el nombre de archivo 
    devuelto por el comando Get-ChildItem.


    En algunos casos, un método requiere un argumento que dirija su 
    acción. Por ejemplo, el objeto FileInfo incluye el método MoveTo, que 
    proporciona una forma de mover un archivo de una ubicación a otra. 
    El método requiere un argumento que especifica la ubicación de destino 
    del archivo. El siguiente comando indica la forma de incluir ese argumento:


        (Get-ChildItem c:\final.txt).MoveTo("c:\techdocs\final.txt")


    El comando Get-ChildItem devuelve un objeto FileInfo para el archivo 
    Final.txt y después usa el método MoveTo de ese objeto para iniciar 
    la acción y especificar la nueva ubicación del archivo.


    Para determinar los argumentos asociados con un método, revise la 
    definición de método correspondiente. Una definición de método 
    contiene una o más firmas de método (también denominadas 
    sobrecargas en Microsoft .NET Framework). Una firma de método 
    contiene el nombre de un método y cero o más parámetros que el 
    usuario debe proporcionar al llamar al método. En el cmdlet 
    Get-Member, cada firma de método queda separada de la firma anterior 
    mediante una coma. Por ejemplo, el método CopyTo de la clase FileInfo 
    contiene las dos firmas de método siguientes:


        1. CopyTo(String destFileName)
        2. CopyTo(String destFileName, Boolean overwrite)


    La primera firma de método usa el nombre del archivo de destino 
    (incluida la ruta de acceso) en el que se va a copiar el archivo 
    de origen. En el siguiente ejemplo, se usa el primer método 
    CopyTo para copiar Final.txt en el directorio C:\Bin:


        (Get-ChildItem c:\final.txt).CopyTo("c:\bin\final.txt")


    Si el archivo ya existe en la ubicación de destino, el método 
    CopyTo no se ejecutará correctamente y Windows PowerShell 
    notificará el siguiente error:


        Excepción al llamar a "CopyTo" con los argumentos "1": "El archivo 
        'c:\bin\final.txt' ya existe.".


    En la segunda firma de método, se pasa el nombre del archivo de 
    destino igual que en el primer caso, pero también se pasa un 
    valor booleano para especificar si se desea que se sobrescriba un 
    archivo existente del mismo nombre en la ubicación de destino, 
    tal y como se indica en el siguiente ejemplo:


        (Get-ChildItem c:\final.txt).CopyTo("c:\bin\final.txt", $true)


    Al pasar el valor booleano, debe usar la variable $True, que Windows 
    PowerShell crea automáticamente. La variable $True contiene el valor 
    booleano "true". (Como era de esperar, la variable $False contiene el 
    valor booleano "false".)


VEA TAMBIÉN
    about_Objects
    Get-Member




Tabla de contenido