TEMA about_Script_Blocks DESCRIPCIÓN BREVE Define lo que es un bloque de script y explica cómo usar los bloques de script en el lenguaje de programación de Windows PowerShell. DESCRIPCIÓN DETALLADA En el lenguaje de programación de Windows PowerShell, un bloque de script es una colección de instrucciones o expresiones que se pueden usar como una sola unidad. Un bloque de script puede aceptar argumentos y valores devueltos. Sintácticamente, un bloque de script es una lista de instrucciones entre llaves, tal y como se muestra en la sintaxis siguiente: {<lista de instrucciones>} Un bloque de script devuelve el resultado de todos los comandos del bloque de script como un solo objeto o como una matriz. Al igual que las funciones, un bloque de script puede incluir parámetros. Use la palabra clave Param para asignar parámetros con nombre, tal y como se indica en la sintaxis siguiente: { param ([tipo]$parameter1 [,[tipo]$parameter2]) <lista de instrucciones> } En un bloque de script, a diferencia de las funciones, no se pueden especificar parámetros fuera de las llaves. Al igual que las funciones, los bloques de script pueden incluir las palabras clave DynamicParam, Begin, Process y End. Para obtener más información, vea about_Functions y about_Functions_Advanced. Usar bloques de script Un bloque de script es una instancia de un tipo de Microsoft .NET Framework (System.Management.Automation.ScriptBlock). Los comandos pueden tener valores de parámetro de bloque de script. Por ejemplo, el cmdlet Invoke-Command tiene un parámetro ScriptBlock que toma un valor de bloque de script, tal y como se muestra en este ejemplo: C:\PS> invoke-command -scriptblock { get-process } Handles NPM(K) PM(K) WS(K) VM(M) CPU(s) Id ProcessName ------- ------ ----- ----- ----- ------ -- ----------- ----------- 999 28 39100 45020 262 15.88 1844 communicator 721 28 32696 36536 222 20.84 4028 explorer . . . El bloque de script que se usa como valor puede ser más complicado, tal y como se muestra en el ejemplo siguiente: C:\PS> invoke-command -scriptblock { param ($uu = "Parámetro"); "$uu asignado." } Parámetro asignado. El bloque de script en el ejemplo anterior usa la palabra clave Param para crear un parámetro con un valor predeterminado. En el ejemplo siguiente se utiliza el parámetro Args del cmdlet Invoke- Command para asignar otro valor al parámetro: C:\PS> invoke-command -scriptblock {param ($uu = "Parámetro"); "$uu asignado."} -args "Otro valor" Otro valor asignado. Se puede asignar un bloque de script a una variable, tal y como se muestra en el ejemplo siguiente: C:\PS> $a = {param ($uu = "Parámetro"); "$uu asignado."} Se puede usar la variable con un cmdlet como Invoke-Command, tal y como se indica en el ejemplo siguiente: C:\PS> invoke-command -scriptblock $a -args "Otro valor" Otro valor asignado. Se puede ejecutar un bloque de script asignado a una variable mediante el operador de llamada (&), tal y como se muestra en el ejemplo siguiente: C:\PS> &$a Parámetro asignado. Asimismo, se puede proporcionar un parámetro al bloque de script, tal y como se muestra en el ejemplo siguiente: C:\PS> &$a "Otro valor" Otro valor asignado. Si desea asignar a una variable el valor creado por un bloque de script, use el operador de llamada para ejecutar directamente el bloque de script, tal y como se muestra en el ejemplo siguiente: C:\PS> $a = &{param ($uu = "Parámetro"); "$uu asignado."} C:\PS> $a Parámetro asignado. Para obtener más información sobre el operador de llamada, vea about_Operators. VEA TAMBIÉN about_Functions about_Functions_Advanced about_Operators