Está en la página 1de 3

TEMA

about_methods
DESCRIPCIN BREVE
Describe cmo se usan los mtodos para realizar acciones en los
objetos de Windows PowerShell.

DESCRIPCIN 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 acta como
proxy del archivo.
La mayora de los objetos incluyen mtodos. Un mtodo es un
conjunto de instrucciones que especifican una accin determinada
que puede realizar con ese objeto. Por ejemplo, el objeto
FileInfo incluye un mtodo denominado CopyTo, que permite copiar
el archivo representado por el objeto.
Para ver una lista de los mtodos y definiciones de mtodo
asociados con un objeto especfico, 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
travs de una canalizacin. 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
mtodos del objeto, escriba el siguiente comando en el smbolo del
sistema de Windows PowerShell:
Get-Member -inputobject $a -membertype method
Si desea ver qu mtodos y definiciones de mtodo estn asociados
con un objeto que se pasa a travs de la canalizacin, debe usar
un comando Get-Member en la canalizacin, tal y como se muestra en el
siguiente ejemplo:
Get-ChildItem c:\final.txt | Get-Member -membertype method
La manera ms comn de invocar un mtodo es especificar el nombre
del mtodo a continuacin de una referencia de objeto (como una
variable o expresin). Debe separar la referencia de objeto y el
mtodo con un punto. Adems, debe usar parntesis inmediatamente a
continuacin del nombre de mtodo para escribir los argumentos que
desee pasar al mtodo.
Si no se pasa ningn argumento en una firma de mtodo, se debe usar un
conjunto de parntesis vacos.
Por ejemplo, el siguiente comando usa el mtodo GetType para
devolver el tipo de datos asociado con el objeto de cadena $a:
$a.GetType()
El mtodo 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 accin est asociada con objetos,
tanto si se declara una variable como si se combinan comandos en una
canalizacin.
Por ello, es posible usar mtodos en diversas situaciones. Por
ejemplo, puede usar un mtodo para realizar una accin 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 mtodo
ToUpper es el objeto de cadena asociado con la propiedad name.
(Observe que el archivo Final.txt debe existir en la raz 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 tambin muestra cmo se puede
llamar a mtodos 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 mtodo 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 mtodo requiere un argumento que dirija su
accin. Por ejemplo, el objeto FileInfo incluye el mtodo MoveTo, que
proporciona una forma de mover un archivo de una ubicacin a otra.
El mtodo requiere un argumento que especifica la ubicacin 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 despus usa el mtodo MoveTo de ese objeto para iniciar
la accin y especificar la nueva ubicacin del archivo.
Para determinar los argumentos asociados con un mtodo, revise la
definicin de mtodo correspondiente. Una definicin de mtodo
contiene una o ms firmas de mtodo (tambin denominadas
sobrecargas en Microsoft .NET Framework). Una firma de mtodo
contiene el nombre de un mtodo y cero o ms parmetros que el
usuario debe proporcionar al llamar al mtodo. En el cmdlet
Get-Member, cada firma de mtodo queda separada de la firma anterior
mediante una coma. Por ejemplo, el mtodo CopyTo de la clase FileInfo
contiene las dos firmas de mtodo siguientes:
1. CopyTo(String destFileName)
2. CopyTo(String destFileName, Boolean overwrite)
La primera firma de mtodo 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 mtodo
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 ubicacin de destino, el mtodo
CopyTo no se ejecutar correctamente y Windows PowerShell
notificar el siguiente error:
Excepcin al llamar a "CopyTo" con los argumentos "1": "El archivo
'c:\bin\final.txt' ya existe.".
En la segunda firma de mtodo, se pasa el nombre del archivo de
destino igual que en el primer caso, pero tambin se pasa un
valor booleano para especificar si se desea que se sobrescriba un
archivo existente del mismo nombre en la ubicacin 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 automticamente. La variable $True contiene el valor
booleano "true". (Como era de esperar, la variable $False contiene el
valor booleano "false".)
VEA TAMBIN
about_Objects
Get-Member

También podría gustarte