about_Script_Blocks

Se aplica a: Windows PowerShell 2.0, Windows PowerShell 3.0

TEMA

about_Script_Blocks

DESCRIPCIÓN BREVE

Define qué son los bloques de script y explica cómo se deben usar en el lenguaje de programación de Windows PowerShell®.

DESCRIPCIÓN LARGA

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 devolver valores.

Sintácticamente, un bloque de script es una lista de instrucciones entre llaves, como se muestra en la siguiente sintaxis:

        {<statement list>}

Un bloque de script devuelve el resultado de todos los comandos del bloque de script, ya sea 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, como se muestra en la siguiente sintaxis:

        {
            param ([type]$parameter1 [,[type]$parameter2])
            <statement list>
        }

En un bloque de script, a diferencia de las funciones, no se puede 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, consulte about_Functions y about_Functions_Advanced.

Usar los 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ámetros del bloque de script. Por ejemplo, el cmdlet Invoke-Command tiene un parámetro ScriptBlock que toma un valor de bloque de script, 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 usado como valor puede ser más complicado, tal como se muestra en el siguiente ejemplo:

          C:\PS> invoke-command -scriptblock { param ($uu = "Parameter"); 
              "$uu assigned." }  
          Parameter assigned.

El bloque de script del ejemplo anterior usa la palabra clave Param para crear un parámetro que tenga un valor predeterminado. En el siguiente ejemplo se usa el parámetro Args del cmdlet Invoke-Command para asignar un valor diferente al parámetro:

          C:\PS> invoke-command -scriptblock {param ($uu = "Parameter"); 
              "$uu assigned."} -args "Other value"
          Other value assigned.

Puede asignar un bloque de script a una variable, como se muestra en el siguiente ejemplo:

          C:\PS> $a = {param ($uu = "Parameter"); "$uu assigned."}

Puede usar la variable con un cmdlet como Invoke-Command, tal como se muestra en el siguiente ejemplo:

          C:\PS> invoke-command -scriptblock $a -args "Other value"
          Other value assigned.

Puede ejecutar un bloque de script que se asigne a una variable mediante el operador de llamada (&), como se muestra en el siguiente ejemplo:

          C:\PS> &$a 
          Parameter assigned.

También puede proporcionar un parámetro al bloque de script, como se muestra en el siguiente ejemplo:

          C:\PS> &$a "Other value"
          Other value assigned.

Si desea asignar a una variable el valor creado por un bloque de script, use el operador de llamada para ejecutar el bloque de script directamente, como se muestra en el siguiente ejemplo:

          C:\PS> $a = &{param ($uu = "Parameter"); "$uu assigned."}
          C:\PS> $a
          Parameter assigned.

Para más información sobre el operador de llamada, consulte about_Operators.

VEA TAMBIÉN

about_Functions

about_Functions_Advanced

about_Operators